来自存储过程的临时表导致SQL Server

时间:2012-06-27 09:58:02

标签: sql-server stored-procedures

我们可以动态地从存储过程结果创建临时表吗?

我不想手动声明临时表列。它从存储过程结果中获取表的模式。

2 个答案:

答案 0 :(得分:1)

使用以下语法模板根据结果集创建临时表。

Select * into #temptable from mytable


Select column1,column2,..columnn into #temptable from mytable

注意:

SELECT INTO语句非常快,原因之一是:为了备份目的,不会记录该命令。更确切地说,命令可以在事务内部,任何回滚命令都将正确地撤消其效果。但是,新值不会永久存储在日志文件中,因此在此命令之后,您只能执行完整的数据库备份(增量备份引发错误)。这解释了为什么必须为非临时表明确启用此功能(临时表永远不会包含在备份中,因此在将SELECT INTO与临时表一起使用之前,不需要使用sp_dboption命令)。

答案 1 :(得分:1)

使用其中一个Rowset Functions

SELECT  *
INTO    #Temp
FROM    OPENQUERY(SERVERNAME, 'EXEC pr_StorProcName')