代码之家  ›  专栏  ›  技术社区  ›  larryq

将存储过程结果集放入表中-除了插入到…exec之外还有其他快捷方式吗?

  •  2
  • larryq  · 技术社区  · 16 年前

    我正在创建一个临时表,它是存储过程结果集的结果。现在我用的是 create table 语句,后跟 insert into....exec .

    它完成了工作,但我很好奇是否有其他方法来解决这个问题?我希望有可能 select into ,存储过程的结果集充当select语句的角色,这样我就不必事先编写create语句(这样,如果存储过程的列发生更改,就不需要进行任何修改)。

    如果有其他方法可以更好地满足我的需求,我很乐意听到他们的消息。非常感谢。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Keith Adler    16 年前

    有两种方法: Table variables 和 CTEs . 每种方法都有好处,而且您的场景往往使我相信,如果源数据非常丰富,临时表是最好的选择。如果不是的话,我会倾向于CTE。

        2
  •  1
  •   gbn    16 年前

    一个诀窍:

    SELECT * FROM OPENQUERY(ThisServerName, 'EXEC myDB.dbo.myStoredproc') 
    

    存储过程不是表或视图,因此不能像表或视图那样期望记录集。 您对“如果存储过程列发生更改”的评论忽略了这一事实:它不应该更改