Выберите последние (первые) строки таблицы в хранимой процедуре с помощью параметра (SQL 2008) - PullRequest
0 голосов
/ 31 октября 2009

Я пытаюсь создать хранимую процедуру, которая использует

ВЫБРАТЬ ТОП 20 * из tblRecords ....

Я хочу, чтобы количество возвращаемых строк было отправлено в процедуру в качестве параметра.

Почему-то написано, что у меня есть синтаксическая ошибка рядом с параметром, который я использую:

ВЫБРАТЬ ТОП @PARAM из tblRecords ....

Есть ли прямой способ сделать это, или мне нужно будет создать оператор с использованием конкатенации строк и выполнить его ...

Ответы [ 2 ]

6 голосов
/ 31 октября 2009

попробуй:

SELECT TOP (@PARAM) * from tblRecords ....

MSDN рекомендует всегда использовать круглые скобки, поддерживается без обратной совместимости:

... Для обратной совместимости поддерживается выражение TOP без скобок в инструкциях SELECT, но мы не рекомендуем этого.

3 голосов
/ 31 октября 2009

В хранимой процедуре перед выполнением выбора введите:

SET ROWCOUNT @param

Это ограничит количество возвращаемых строк значением @ param.

После запроса установите его обратно в 0:

SET ROWCOUNT 0
...