Подтвердить что ты не робот

Можете ли вы передать номер "TOP" в качестве параметра хранимой процедуры?

Возможный дубликат:
SQL Server - используйте параметр, чтобы выбрать верхний X из набора результатов

Мой запрос в моей хранимой процедуре выглядит примерно так:

select top 9 from my_table;

Я хотел бы отредактировать хранимую процедуру для динамического создания ограничения по параметру, однако, похоже, это не работает:

ALTER PROCEDURE [dbo].[my_stored_procedure]
   @n INT(2)
AS
BEGIN

SELECT TOP @n from my_table;

Это выполнимо? Или мне нужно сделать что-то вроде:

@n int(2),
@sql varchar(30)

@sql = 'select top ' + @n '* from my table';
exec(@sql);

Спасибо.

4b9b3361

Ответ 1

Вы должны заключить параметр в круглые скобки, например:

DECLARE @QQ INT = 10

SELECT  TOP (@QQ)
        *

FROM    Your_Table