SQL将动态查询的值转换为变量

时间:2019-10-17 00:41:18

标签: sql-server dynamic-sql

我正在使用动态SQL查询在SQL Server 2016数据库中选择某个内容的COUNT,并希望将该值放入变量中。下面是我确定是正确的SQL语句,但是我得到的值是NULL(我已经测试过查询并返回一个值)。有小费吗?

DECLARE @Output INT 

SELECT @SqlCommand = 'SELECT COUNT(ServerName) FROM ' + @TableReference + ' WITH (NOLOCK) WHERE ServerName = ''' + @PackageEndPoint + '''' 

EXEC sp_executesql @SqlCommand, N'@Output INT OUTPUT', @Output = @Output OUTPUT

SELECT @StagingRecordCount = @Output

1 个答案:

答案 0 :(得分:1)

您需要将@Output变量分配给结果计数。

@Output = COUNT(ServerName)

完整脚本

DECLARE @Output INT 

SELECT @SqlCommand = 'SELECT @Output = COUNT(ServerName) FROM ' + @TableReference + ' WITH (NOLOCK) WHERE ServerName = ''' + @PackageEndPoint + ''''

EXEC sp_executesql @SqlCommand, N'@Output INT OUTPUT',@Output = @Output OUTPUT
SELECT  @StagingRecordCount = @Output
SELECT @StagingRecordCount