我有2个存储过程,每个SP返回2个具有相同模式的数据集。
数据就像
Stored procedure 1
Table1
ID Name
1 Apple
2 Sony
3 DELL
Table2
OrderID CustomerName
101 AB Stores
202 Sony World
301 PC House
存储过程2
Table1
ID Name
21 HP
32 LG
34 ACCER
Table2
OrderID CustomerName
1301 X-PC World
2202 Your PC House
3301 Ajant Stores
现在我想在其他存储过程
中合并这样的数据meargeData1 = SP1.Table1 + SP2.Table1
meargeData2 = SP1.Table2 + SP2.Table2
请建议我热,我可以实现它。
答案 0 :(得分:0)
将两个程序的结果收集到一个临时表中,如同问题一样。
答案 1 :(得分:0)
像OPENROWSET
这样的解决方案(如@PreetSangha中包含的链接问题)不能处理多个结果集 - 它们只为您提供第一个结果集。
类似地,使用诸如INSERT ... EXEC
之类的构造将处理来自存储过程的多个结果集,但它会将所有结果存储在单个表中 - 您将无法将它们分开。 (INSERT ... EXEC
还有其他问题,不值得进入这里)
关于我能看到的唯一方法是使用非TSQL语言在某处编写一些过程代码。这可以是您正在构建的任何客户端应用程序,也可以是CLR存储过程。在任何一种情况下,您都必须手动执行合并。