从存储过程的第n个结果集创建表

时间:2014-10-08 17:12:43

标签: sql sql-server tsql

我有一个返回4个结果集的存储过程。结果集有很多列。

从每个结果集中创建表的最佳方法是什么?表中的数据类型和模式应与结果集中的数据类型和模式相同。

我知道我可以这样做从选择中创建一个表:

CREATE TABLE TABLE_NAME 
  AS SELECT * FROM USERS

那么有没有办法从存储过程执行中选择结果集?

1 个答案:

答案 0 :(得分:1)

虽然这主要是在聊天中涵盖的,但对于可能想知道同样事情的其他人来说,它应该仍然有答案。

从T-SQL上下文中访问特定结果集的唯一方法是通过SQLCLR。使用C#,VB.Net或任何.Net语言,您可以使用SqlDataReader来分别访问结果集。

SQLCLR proc只是执行现有的T-SQL proc并且可以吐出一个结果集(假设输入参数指定哪一个作为结果集返回)可以执行一个单独的连接,并直接调用INSERT语句同时执行所有4个(虽然在那时它也可以是一个控制台应用程序或Windows窗体或其他)。