在SQL Server 2005/2008中创建一个临时表,如当前表

时间:2009-11-06 19:03:52

标签: sql sql-server tsql stored-procedures

如何创建与存储过程中的当前表完全相同的临时表?

4 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:7)

  

SELECT * INTO #t FROM table

如果你想要它是空的:

  

SELECT * INTO #t FROM table WHERE 1 = 2

答案 2 :(得分:1)

或者,您可以编写现有表的脚本并将名称更改为临时表名称,并将create table脚本添加到要运行的其余脚本的顶部。我通常这样做,如果真正重要的是临时表与真实表的结构完全匹配(例如当我创建一个名为#inserted的假表时,在测试我打算放入触发器的代码时使用它。)

大部分时间虽然选择将为您提供所需的信息。

答案 3 :(得分:0)

公共表表达式或表变量也可以用于除临时表之外的目的