SQL 将动态查询的值放入变量中

SQL getting value of dynamic query into a variable

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

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

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