У меня динамический запрос для выполнения. На этот запрос я получаю некоторые параметры от пользователя (например, параметры для подкачки). Поэтому я использую sp_executesql
для выполнения запроса. Когда я указываю order by
внутри запроса, я получаю сообщение об ошибке: Предложение ORDER BY недопустимо в представлениях, встроенных функциях, производных таблицах, подзапросах и выражениях общих таблиц, если только TOP или FOR XML не являются также указано. . Как я могу решить проблему
SET @sql = 'SELECT * FROM
(SELECT ROW_NUMBER() OVER(ORDER BY CaseID)AS RowNumber
,*<br>
FROM [dbo].[CV_CaseMaster]
WHERE SpaceID = @SID<br>
order by @OrderBy
)
AS CV_CaseMasterDetails WHERE RowNumber BETWEEN @MinRow AND @MaxRow'
`
EXEC sp_executesql @sql
,N'@SID UNIQUEIDENTIFIER,@MinRow int, @MaxRow int,@OrderBy VARCHAR(50)'
,@SID=@SpaceID,@MinRow = @CurrentMinRow,@MaxRow = @CurrentMaxRow, @OrderBy = @SortBy`
OR
Можно ли указать столбец Order By
с sp_executesql
?