PDA

View Full Version : فرستادن نام جدول به store procedure(فوری)



sh_m
دوشنبه 09 خرداد 1384, 11:18 صبح
سلام
خسته نباشید
چطور میشه در store procedure نام جدول را بصورت پارامتر ورودی به دستورات داخل آن بفرستیم که این دستورات به جدولی که ما می خواهیم رجوع کنند . من موفق نشدم این کار را انجام دهم لطفا کمک کنید.
پیشاپیش از شما متشکرم .

majid_afra222
دوشنبه 09 خرداد 1384, 14:21 عصر
سلام
قبلا پاسخ داده شده٬‌لطفا جستجو کنید.

sh_m
سه شنبه 10 خرداد 1384, 10:15 صبح
ممنون
من قبل از اینکه سوالم رو مطرح کنم پاسخ قبلی رو دیده بودم . ولی یک مشکل دارم و اون هم اینه که نمی دونم فیلدهای تاریخ رو که می خوایم مثلا به جدول insert کنیم رو باید چه جوری به متن sp الحاق کنیم . خطا میده .اگه لطف کنید یک مثال از insert کردن یک رکورد حاوی فیلد تاریخ و mony در یک جدول انتخابی بنویسید ممنون میشم.
:oops:

AminSobati
سه شنبه 10 خرداد 1384, 23:52 عصر
دوست عزیزم، دقیقا چه دستوری نوشتین و چه خطایی دریافت میکنین؟ لطفا پست کنین

majid_afra222
چهارشنبه 11 خرداد 1384, 06:23 صبح
سلام
برای ایجاد همچین رویه ای بهتره همه چیز رو بصورت رشته کاراکتری به رویه ارسال کنید و اونجا به هم متصلشون کنید٬‌ و بعد هم اجرا. مثل این :


CREATE TABLE [dbo].[Table_Emp] (
[id] [numeric](18, 0) IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[name] [nvarchar] (50) COLLATE Arabic_CI_AS NULL ,
[salary] [money] NULL ,
[hiredate] [datetime] NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Table_Emp] WITH NOCHECK ADD
CONSTRAINT [PK_Table_Emp] PRIMARY KEY CLUSTERED
(
[id]
) ON [PRIMARY]
GO

CREATE PROCEDURE InsertTest @Table_Name VARCHAR(20), @Fields VARCHAR(200)
, @Values VARCHAR(500)
AS
DECLARE @strInsert VARCHAR(2000)
SET @strInsert = 'INSERT INTO ' + @Table_Name + ' (' + @Fields + ') VALUES (' + @Values + ')'
PRINT @strInsert
EXEC(@strInsert)


GO
DECLARE @strValues VARCHAR(500)
SET @strValues = 'N''محمد'''+ ', CAST(''' + CAST($123123.45 AS VARCHAR) + ''' AS MONEY), CAST(''' + CAST(GETDATE() AS VARCHAR) + ''' AS DATETIME)'
PRINT @strValues
EXEC InsertTest 'Table_Emp', 'Name, Salary, HireDate' , @strValues

GO
SELECT * FROM Table_Emp

دستورات PRINT رو میتونی حذف کنی٬‌برای مشاهده مقادیر ایجاد شده و ارسالی استفاده شدن.

یا اینکه میتونستی مقادیر رو به تابع ارسال کنی و اونجا رشته ورود را ایجاد کنی.


امیدوارم بدردت بخوره

sh_m
یک شنبه 15 خرداد 1384, 18:40 عصر
سلام
ممنونم حتما به دردم می خوره خیلی لطف کردید.

از آقای ثباتی هم به خاطر حسن توجهشون بسیار متشکرم.تا حالا خیلی به من کمک کردید.
این سایت برای من یه نعمت بزرگه امیدوارم همیشه پابرجا بمونه و کسانی که کمک می کنن همیشه موفق و سلامت باشن.