PDA

View Full Version : اجرای شرط ها در صورتی که پارامتر مقدار داشت



مهدی رحیم زاده
سه شنبه 20 خرداد 1393, 19:44 عصر
با سلام خدمت تمامی دوستان عزیز
من یک sp دارم که یک سری داده رو داره سلکت میکنه. داده هایی که سلکت میشن بر اساس شرط های مختلفی باید انتخاب بشن . من به این sp چهارتا پارامتر ارسال میکنم و میخوام اگر هر کدوم از پارامتر ها مقدار داشت ، توی شرط لحاظ بشه بهترین دستوری که میتونم ازش استفاده کنم به نظر دوستان چیه؟
با تشکر

pashna
چهارشنبه 21 خرداد 1393, 00:45 صبح
سلام ،
میتونید از دینامیک کوئری استفاده کنید مثل :


DECLARE @sqlCommand nvarchar(1000)
DECLARE @columnList varchar(75)
DECLARE @city varchar(75)
SET @columnList = 'CustomerID, ContactName, City'
SET @city = 'London'
SET @sqlCommand = 'SELECT ' + @columnList + ' FROM customers WHERE City = @city'
EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75)', @city = @city


یا اینکه اگر از ورژنِ ۲۰۰۸ به بالا استفاده میکئد میتونید مقدل نال به پارامتر ورودی پاس کنید مثل :



CREATE PROCEDURE spDoSearch
@FirstName varchar(25) = null,
@LastName varchar(25) = null,
@Title varchar(25) = null
AS
BEGIN
SELECT ID, FirstName, LastName, Title
FROM tblUsers
WHERE
FirstName = ISNULL(@FirstName, FirstName) AND
LastName = ISNULL(@LastName, LastName) AND
Title = ISNULL(@Title, Title)
END