如果几个返回结果集的字段类型,及数量相同,可以用union all联成一个表。

解决方案 »

  1.   

    如果是写在sp,不用union all连接来,但是必须插入一个表才可以直接引用insert into 表(字段和你的返回结果一样)
    exec spciwfTasLoadByOrg
      

  2.   

    我用临时表,但是提示出错
    CREATE PROCEDURE spciwfTasLoadByAllOrg
    @UserID int
    ASDECLARE @temp table(
        PkID int,
        FlowID int,
        PhaseID int,
        Name varchar(64),
        Performer varchar(32),
        TaskState varchar(64),
        TaskStateName varchar(64),
        Deadline datetime,
        Remind varchar(512),
        Sender int,
        SendTime datetime,
        Receiver int,
        ReceiveTime datetime,
        FinishTime datetime,
        TaskUrl varchar(512),
        FormID int
    )INSERT INTO @temp EXEC spciwfTasLoadByOrg
    SELECT * FROM @temp
    GO
      

  3.   

    CREATE PROCEDURE spciwfTasLoadByAllOrg
    @UserID int
    AScreate table #(
        PkID int,
        FlowID int,
        PhaseID int,
        Name varchar(64),
        Performer varchar(32),
        TaskState varchar(64),
        TaskStateName varchar(64),
        Deadline datetime,
        Remind varchar(512),
        Sender int,
        SendTime datetime,
        Receiver int,
        ReceiveTime datetime,
        FinishTime datetime,
        TaskUrl varchar(512),
        FormID int
    )INSERT INTO # EXEC spciwfTasLoadByOrg
    SELECT * FROM #
    drop table #
    GO
      

  4.   

    table 变量的行为类似于局部变量,有明确定义的作用域。该作用域为声明该变量的函数、存储过程或批处理。 
    在其作用域内,table 变量可像常规表那样使用。该变量可应用于 SELECT、INSERT、UPDATE 和 DELETE 语句中用到表或表的表达式的地方。但是,table 不能用在下列语句中:INSERT INTO table_variable EXEC 存储过程。SELECT select_list INTO table_variable 语句。在定义 table 变量的函数、存储过程或批处理结束时,自动清除 table 变量。
      

  5.   

    用union all不行,循环的时候怎么处理啊
      

  6.   

    可以在sp中创建个临时表,然后先将各个CURSOR插入到临时表中,最后再select * from 临时表