2012-08-06 114 views
0

我创建了以下测试存储过程。从多个结果集中返回单个结果集

CREATE PROCEDURE [dbo].[TestA] 
AS 
BEGIN 
    SET NOCOUNT ON; 
    CREATE TABLE #MyTableA (ID INT, Name VARCHAR(255)) 
    CREATE TABLE #MyTableB (ID INT, Name VARCHAR(255)) 

    .............. 

    EXEC TestB; 
    SELECT * FROM #MyTableB; 

END 

TestB存储过程返回结果集。但我需要调用它。根据此存储过程,返回两个结果集。但我需要返回一个。我怎样才能做到这一点?谢谢。

+0

是相互关联的表?使用join从两个表中检索列 – praveen 2012-08-06 03:15:52

+0

没有关系。表格是不同的。 – zanhtet 2012-08-06 03:20:49

+0

然后使用union all检索数据 – praveen 2012-08-06 03:21:57

回答

0

试试这个: -

CREATE PROCEDURE [dbo].[TestB] 
AS 
BEGIN 
SET NOCOUNT ON; 
CREATE TABLE #MyTableA (ID INT, Name VARCHAR(255)) 
CREATE TABLE #MyTableB (ID INT, Name VARCHAR(255)) 

............. 

INSERT INTO #MyTableA 
exec TestA 
DROP TABLE #MyTableA 
SELECT * FROM #MyTableB; 

END 
+0

我不能删除MyTableA。它实际上是作为真正的表而不是临时表存在的。 – zanhtet 2012-08-06 03:44:22

+0

但你已经在你的问题中定义为临时表,你为什么在SP中创建该表,如果它已经存在?无论如何,只要删除删除语法 – praveen 2012-08-06 03:50:29