PDA

View Full Version : استفاده از استور پروسیجر با چند پارامتر برای ویرایش



طبیب دل
دوشنبه 08 آبان 1391, 19:28 عصر
با سلام به دوستان
من یه استورپروسیجر دارم که چند تا پارامتر داره برای ویرایش به کار میره. حالا موقع استفاده می خوام فقط یکی از فیلدهارو ویرایش کنم ولی خطا میده که باید تمام پارامتر ها رو بنویسی .
چطور میشه فقط یک پارامتر رو ویرایش کرد؟
با تشکر

fakhravari
دوشنبه 08 آبان 1391, 20:48 عصر
میتوانید مقدار پیشفرض بزارید اما روی رکور ها تاثیر میزاره مقدار پیشفرض
@Body nvarchar(MAX) = null

S_VB.max
سه شنبه 09 آبان 1391, 17:06 عصر
Alter PROCEDURE mysp
@A nchar(10)=null
,@B nchar(10)=null
AS
BEGIN
UPDATE Table1
SET A = @A
,B =@B
END

لطفا راهنمایی کنید چطور این استورپروسیجر را تغییر بدم که اگه دستور mysp @A='123' را اجرا کردم مقدار پیش فرض برای رکوردهای ستون B اعمال نشود و یا برعکس
اگه دستور mysp @B='123' را اجرا کردم مقدار پیش فرض برای رکوردهای ستون A تاثیر اعمال نشه

حمیدرضاصادقیان
سه شنبه 09 آبان 1391, 23:53 عصر
سلام.
شما میتوانید به صورت Dynamic بنویسید به این شکل

Create PROCEDURE mysp
@A nchar(10)=null
,@B nchar(10)=null
AS
BEGIN
Declare @Str Nvarchar(1000)
Set @Str=N'Update Table1 Set'
If @A is null
set @Str=@Str+N' b=@B'
Else
Set @Str=@Str+N' A=@A'
Execute Sp_executeSQl @STR
END

Felony
چهارشنبه 10 آبان 1391, 08:37 صبح
http://barnamenevis.org/showthread.php?366770-%DA%86%D8%B1%D8%A7-Dynamic-Query-%D8%9F-%DA%86%D8%B1%D8%A7-IsNull-%D9%86%D9%87-%D8%9F!