TSQL - как выполнить запрос как переменную?
DECLARE @query as varchar(200);
SET @query = 'SELECT COUNT(*) FROM table';
Как я могу выполнить @query
, и, кроме того, есть способ сохранить результат запроса непосредственно при назначении переменной?
Ответы
Ответ 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.