如何阻止嵌套存储过程的结果出现在顶层?
How to stop results of nested stored procedure showing up at top level?
我对现有存储过程 (dbo.pr1) 进行了更改,以便它现在调用第二个存储过程 (dbo.pr2)。
这两个存储过程 return 数据都带有最终 SELECT 查询。
在 dbo.pr1 中,我现在添加了以下行:
EXEC @var1 = dbo.pr2
我这样做是为了将 dbo.pr2 中的值分配给变量 @var1(dbo.pr2 returns 一个位)。
但是,现在当我执行 dbo.pr1 时,我得到了两个结果,而不是预期的结果。我在 dbo.pr1 的末尾得到了 SELECT 查询结果,但我也从 dbo.pr2.
得到了 SELECT 查询结果
我无法更改 dbo.pr2,因为它正在系统的其他地方使用。有什么方法可以在我执行 dbo.pr1 时停止显示结果?
对调用方返回的内容进行处理,
SET NOCOUNT ON;
...
DECLARE @resultsOfPr2 TABLE
(
...
);
INSERT @resultsOfPr2
EXEC @var1 = [dbo].[pr2];
注意: 我假设 [dbo].[pr2]
选择单个结果集。
我对现有存储过程 (dbo.pr1) 进行了更改,以便它现在调用第二个存储过程 (dbo.pr2)。
这两个存储过程 return 数据都带有最终 SELECT 查询。
在 dbo.pr1 中,我现在添加了以下行:
EXEC @var1 = dbo.pr2
我这样做是为了将 dbo.pr2 中的值分配给变量 @var1(dbo.pr2 returns 一个位)。
但是,现在当我执行 dbo.pr1 时,我得到了两个结果,而不是预期的结果。我在 dbo.pr1 的末尾得到了 SELECT 查询结果,但我也从 dbo.pr2.
得到了 SELECT 查询结果我无法更改 dbo.pr2,因为它正在系统的其他地方使用。有什么方法可以在我执行 dbo.pr1 时停止显示结果?
对调用方返回的内容进行处理,
SET NOCOUNT ON;
...
DECLARE @resultsOfPr2 TABLE
(
...
);
INSERT @resultsOfPr2
EXEC @var1 = [dbo].[pr2];
注意: 我假设 [dbo].[pr2]
选择单个结果集。