代码之家  ›  专栏  ›  技术社区  ›  Sonny Boy

将存储过程结果转换为表?[副本]

  •  1
  • Sonny Boy  · 技术社区  · 15 年前

    我目前有一个存储过程,它运行一个复杂的查询并返回一个数据集。如果可能的话,我想把这个数据集转换成一个表(我可以在这个表上执行进一步的查询)。我知道我可以用一个表值的自定义项来实现这一点,但我更希望在这一点上避免这种情况。我有什么办法能完成这项任务吗?

    4 回复  |  直到 9 年前
        1
  •  1
  •   OMG Ponies    15 年前
        2
  •  1
  •   Thomas    15 年前

    将存储过程结果强制转换为 桌子?

    是的,这是经常使用的。它只需要一个或多个select语句:

    Create Procedure #Foo
    As
    Select object_id, name
    From sys.columns
    

    Declare @Data Table ( object_id int, name nvarchar(128) )
    
    Insert @Data
    Exec #Foo
    
    Select *
    From @Data
    

    (或者使用Cade Roux和OMG Ponies提到的更聪明的OPENROWSET解决方案)

        3
  •  0
  •   Philip Kelley    15 年前

    table-valued parameters ? 它们在SQL2008中是新的。

    --编辑--

    存储过程。

        4
  •  0
  •   dretzlaff17    15 年前