我有一个调用另一个存储过程sp_1_1的存储过程sp_1。如何抑制多个存储过程的结果
我知道如何使用this trick来抑制sp_1_1的结果。
真正的问题是,sp_1_1本身也调用另一个存储过程sp_1_1_1也返回它的结果sp_1_1!
我可能不会更改sp_1_1或sp_1_1_1,并且只能更改sp_1。
返回到sp_1的结果是2个记录集,其中第一个来自sp_1_1,第二个来自sp_1_1_1。
摘要:
SP_1(需要抑制两个记录从下返回)
+ ---- sp_1_1(返回其自己的结果,然后从下面的结果)
+ - --------- sp_1_1_1(返回结果)
...这听起来像是一个重构的机会(即将'sp_1_1'和'sp_1_1_1'分为两个过程]。压制你的结果实际上只是一个短期收益。我不知道是否有可能从SP返回两个不同的结果集(尽管我从来没有对它们造成太大影响) - 您是否可以不创建两个临时表,如您的示例? – 2012-07-06 15:33:30
就像您的建议听起来一样,重构sp_1_1和sp_1_1_1(显然不是真正的sp名称,只是别名为清晰起见)并不是一个选项,因为它们被其他使用反馈的进程使用。感谢您的反馈。 – callisto 2012-07-07 11:00:40
SQL Server“Denali”为您提供处理结果集的新选项。在这种情况下,因为你嵌套你显然不能使用插入/执行技巧。一种解决方法是,如果你不想重构太多,就是用一个默认的参数添加到proc中,像@SuppressResults bit = false – Runonthespot 2012-11-09 15:22:38