使用 sp_executesql 将标量结果存储到变量中



我遵循了在此链接中找到的第一个答案:如何将sp_executesql结果放入变量中?

Declare @Num int;
Declare @DB_Name nvarchar(50);
Set @DB_Name = 'Database';
Declare @query nvarchar(100);
DECLARE @parm nvarchar(100);
Select @query = N'Select COUNT(Field) From ' + @DB_Name + '.dbo.Table';
Select @parm = N'@Num int OUT';
EXEC sp_executesql @query, @parm, @Num = @Num OUT;
Select @Num;

Exec 语句的输出在结果窗口中为我提供了正确的结果,但是,最后一个"选择@Num"语句返回 NULL。

我需要在代码的其余部分使用 @Num 变量的值。

我错过了什么吗?

约瑟夫

在动态 SQL 中,您忘记将查询结果分配给@num变量

Select @query = N'Select @Num = COUNT(Field) From ' + @DB_Name + '.dbo.Table';

最新更新