如何创建与存储过程中的当前表完全相同的临时表?
答案 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)
公共表表达式或表变量也可以用于除临时表之外的目的