PDA

View Full Version : سوال: راهنمائي براي نوشتن يكStored Procedure



Iran58
پنج شنبه 11 شهریور 1389, 13:53 عصر
سلام
مي خواهم يك Stored Procedure بنويسيم دو پارامترورودي داشته باشد
(fname@,@lname) به اين شرط كه اگر هم يكي از اين دوپارامتر داده اي نداشته (مثلا فاميلي را پاس نداديم)Stored Procedure جوابهاي مورد نظر را براساس پارامتر fname@بازگرداند
بي زحمت باكد توضيح دهيد
باتشكر

بهزادصادقی
جمعه 12 شهریور 1389, 02:13 صبح
یک روش این است که به این پارامتر ها یک ارزش default بدهی که برابر با null می باشد. در این صورت، اگر stored procedure شما بدون لحاظ کردن یکی از یا هر دو این پارامترها فراخوانی شد، SQL Server به صورت خودکار ارزش پارامتر فید نشده را null لحاظ می کند. این به شما این توانایی را می دهد که در درون کد stored procedure چک کنید که آیا هر پارامتر null است یا نه. اگر هر کدام null بودند، شما می دانید که کاربر درخواستی در مورد آن پارامتر نداشته و شما می توانید پردازش خاص آن مورد را بر اساس منطق دلخواه خود انجام دهید.

برای مثال:



create proc MyProc
(
@firstName nvarchar(100) = null,
@lastName nvarchar(100) = null
)
as
begin

if @firstName is null begin

print 'You did not pass a first name as a parameter';

end else if @lastName is null begin

print 'You did not pass a last name as a parameter';

end;

end;


برای دادن یک ارزش default به یک پارامتر در SQL Server، شما بعد از تعیین اسم و نوع آن پارامتر در قسمت تعریف stored procedure، با استفاده از علامت مساوی (=) ارزش مورد نظر خود را ذکر می نمائید. پس، مثلا به جای اینکه بگوئید:



@firstName nvarchar(100),


می گوئید:



@firstName nvarchar(100) = null,