如何合并两个存储过程数据

时间:2012-10-29 08:38:34

标签: sql-server-2005

我有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

请建议我热,我可以实现它。

2 个答案:

答案 0 :(得分:0)

将两个程序的结果收集到一个临时表中,如同问题一样。

Insert results of a stored procedure into a temporary table

答案 1 :(得分:0)

OPENROWSET这样的解决方案(如@PreetSangha中包含的链接问题)不能处理多个结果集 - 它们只为您提供第一个结果集。

类似地,使用诸如INSERT ... EXEC之类的构造将处理来自存储过程的多个结果集,但它会将所有结果存储在单个表中 - 您将无法将它们分开。 (INSERT ... EXEC还有其他问题,不值得进入这里)

关于我能看到的唯一方法是使用非TSQL语言在某处编写一些过程代码。这可以是您正在构建的任何客户端应用程序,也可以是CLR存储过程。在任何一种情况下,您都必须手动执行合并。