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

TSQL - как выполнить запрос как переменную?

DECLARE @query as varchar(200);
SET @query = 'SELECT COUNT(*) FROM table';

Как я могу выполнить @query, и, кроме того, есть способ сохранить результат запроса непосредственно при назначении переменной?

4b9b3361

Ответ 1

Вы можете использовать sp_executesql с параметром output для получения скалярного результата.

DECLARE @query as nvarchar(200), @count int;
SET @query = N'SELECT @count = COUNT(*)  FROM table';

EXEC sp_executesql @query, 
                   N'@count int OUTPUT', 
                   @count = @count OUTPUT

SELECT @count AS [@count]

Ответ 2

Вы можете сделать это следующим образом:

exec (@query)

или, предпочтительно, следующим образом:

execute sp_executesql @query

Для получения дополнительной информации проверьте эту статью MSDN.