【发布时间】:2009-11-06 19:03:52
【问题描述】:
如何在存储过程中创建一个与当前表完全一样的临时表?
【问题讨论】:
标签: sql sql-server tsql stored-procedures
如何在存储过程中创建一个与当前表完全一样的临时表?
【问题讨论】:
标签: sql sql-server tsql stored-procedures
select * into #temp_table from current_table_in_stored_procedure
#temp_table - locally temp
##temp_table - globally temp
select top 0 * into #temp_table from current_table_in_stored_procedure to have empty table
【讨论】:
SELECT * INTO #t FROM table
如果您希望它为空:
SELECT * INTO #t FROM table WHERE 1 = 2
【讨论】:
或者,您可以编写现有表的脚本并将名称更改为临时表名称,然后将创建表脚本添加到要运行的其余脚本的顶部。如果临时表与真实表的结构完全匹配真的很重要,我通常会这样做(例如,当我创建一个名为#inserted 的假表以在测试我打算放入触发器中的代码时使用。)
大多数情况下,虽然 select into 会为您提供所需的内容。
【讨论】:
除了临时表之外,通用表表达式或表变量也可以达到目的
【讨论】: