PDA

View Full Version : سوال: مشکل با ارسال اطلاعات بوسیله storedprocedure



meysampaknahad
پنج شنبه 23 مهر 1388, 14:40 عصر
با سلام خدمت دوستان

من میخام اطلاعات صفحه ای رو بوسیله stored procedure به دیتابیس ارسال کنم که یکی از پارامترهای ارسالی نام جدول مربوطه هستش.

با این کد :

CREATE PROCEDURE [dbo].[usp_insert_Master]
@table varchar(50) ,
@onvan nvarchar(200),
@kholase nvarchar(600),
@matneasli nvarchar(MAX),
@datetime varchar(50),
@Image nvarchar(100)
AS
INSERT INTO @table
(Onvan , Kholase , MatneAsli , DateTime , Image)
VALUES(@Onvan , @Kholase , @MatneAsli , @DateTime , @Image)

ولی موقع اجرای stored procedure از @table ایراد می گیره


Msg 1087, Level 15, State 2, Procedure usp_insert_Master, Line 9
Must declare the table variable "@table".

لطفاً راهنمایی کنید.

sahele_sheni
پنج شنبه 23 مهر 1388, 15:21 عصر
دوست عزیز شما میتونی از متد insert مربوط به tableadapter همون جدول استفاده کنی و دیگه نیازی به نوشتن sp نداری !

meysampaknahad
پنج شنبه 23 مهر 1388, 18:13 عصر
دوست عزیز ممنون از اینکه جواب دادید.
ولی فعلاً ترجیح میدم ( مجبورم ):لبخندساده: از sp استفاده کنم.

raziee
پنج شنبه 23 مهر 1388, 18:42 عصر
برای چی نام جدول را در sp ذکر نمیکنید؟ مگه جدول یکی نیست؟ یعنی ممکنه این اطلاعات در چند جدول مختلف که فیلد هاش یکیه درج بشه؟:اشتباه:
به هر حال برای این موضوع که من هم به دنبالش بودم و لی به نتیجه نرسیدم(متغیری از نوع جدول)

meysampaknahad
پنج شنبه 23 مهر 1388, 21:06 عصر
بله دوست عزیز
اطلاعات در چند جدول که فیلدهای یکسانی داره وارد می شن.
اگه می تونید کمک کنید

raziee
پنج شنبه 23 مهر 1388, 22:10 عصر
نام جدول نمی تواند متغیر باشد.

برای اینکه بتوانین نام جدول مورد نظر هم متغیر انتخاب کنین می توانین از Dynamic SQL استفاده کنین (دستورات execute و SP)
http://barnamenevis.org/forum/showthread.php?t=184479
در اینجا خودتون پرسیدید و جواب رو هم دوستی دادند.
من قبلا برای ساخت پروسیجیری برای ساخت جدول همچین متغیری رو میخواستم اما نشد و کسی هم نمیدونست.