我已对现有存储过程(dbo.pr1)进行了更改,以便它现在调用第二个存储过程(dbo.pr2)。
这两个存储过程都返回带有最终SELECT查询的数据。
在dbo.pr1中,我现在添加了一行:
EXEC @var1 = dbo.pr2
我已经完成了这项工作,以便将dbo.pr2中的值分配给变量@ var1(dbo.pr2返回单个位)。
然而,现在当我执行dbo.pr1时,我得到两个结果而不是预期结果。我在dbo.pr1结束时获得SELECT查询结果,但我也从dbo.pr2获得SELECT查询结果。
我无法改变dbo.pr2,因为它正在系统的其他地方使用。有没有办法可以在执行dbo.pr1时停止显示结果?
答案 0 :(得分:3)
对调用者返回的内容执行某些操作,
SET NOCOUNT ON;
...
DECLARE @resultsOfPr2 TABLE
(
...
);
INSERT @resultsOfPr2
EXEC @var1 = [dbo].[pr2];
注意:我假设[dbo].[pr2]
选择了一个结果集。