PDA

View Full Version : پارامتر مرتب سازی در StoreProcedure



ariadpg
دوشنبه 14 اسفند 1391, 09:40 صبح
با سلام.
Storeprocedure زیر را در نظر بگیرید:

CREATE PROCEDURE stpSearchRequest

@FRequestDate int=Null,
@TRequestDate int=Null,
@Name nvarchar(50)=Null,
@Family nvarchar(50)=Null,
@IdentNo bigint=Null,
@RequestSubject int=Null,
@RequestType int=Null,
@RequestStatus int =Null,
@RName nvarchar(50)=Null,
@RFamily nvarchar(50)=Null,
@CityName nvarchar(50)=Null,
@RCityName nvarchar(50)=Null,
@ReportType int=Null


As

If @ReportType = 0
Select * From vwRequest
where (
(@FRequestDate is null or VoteDate>=@FRequestDate) and
(@TRequestDate is null or VoteDate<=@TRequestDate ) and
(@Name is null or [Name] like '%'+@Name+'%' ) and
(@Family is null or Family like '%'+@Family+'%' ) and
(@IdentNo is null or IdentNo = @IdentNo ) and
(@RequestSubject is null or RequestSubject= @RequestSubject ) and
(@RequestType is null or RequestType = @RequestType ) and
(@RequestStatus is null or RequestStatus = @RequestStatus) and
(@RName is null or RName like '%'+@RName+'%' ) and
(@RFamily is null or RFamily like '%'+@RFamily+'%' ) and
(@CityName is null or CityName like '%'+@CityName+'%' ) and
(@RCityName is null or RCityName like '%'+@RCityName+'%' ) and
(VoteNo is Not Null )
)
order by MakhtoomeNo,Family

من میخواهم در جلوی Order by مقداری را بصورت پارامتر ارسال کنم ، این پارامتر را باید از چه نوعی تعریف کنم ؟ از نوع Nvarchar تعریف کردم ولی پیغام خطا داد . لطفا راهنمائی بفرمائید

mohsen.net
دوشنبه 14 اسفند 1391, 13:47 عصر
اگر می خواهی مرتب سازی به صورت دینامیک باشه باید dynamic query بسازی

کل کوئری را به صورت یک رشته بساز و آن رشته را اجرا کن