我遵循了在此链接中找到的第一个答案:如何将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';