TSQL - 如何将查询作为变量执行?

Mal*_*lyo 16 t-sql variables

DECLARE @query as varchar(200);
SET @query = 'SELECT COUNT(*) FROM table';
Run Code Online (Sandbox Code Playgroud)

如何执行@query,此外,还有在分配变量时直接存储查询结果的方法吗?

Mar*_*ith 29

您可以使用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]
Run Code Online (Sandbox Code Playgroud)


aF.*_*aF. 12

你可以这样做:

exec (@query)
Run Code Online (Sandbox Code Playgroud)

或者,最好像这样:

execute sp_executesql @query
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看此MSDN文章.