首页 > 解决方案 > SQL将动态查询的值放入变量中

问题描述

我正在COUNT使用动态 SQL 查询在 SQL Server 2016 数据库中选择某些东西,并希望将该值放入变量中。下面是我确信是正确的 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

标签: sql-serverdynamic-sql

解决方案


您需要将 @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

推荐阅读