【问题标题】:SQL Server 2005 Temporary TablesSQL Server 2005 临时表
【发布时间】:2010-09-07 19:38:33
【问题描述】:
在存储过程中,#Temptable 是什么时候在 SQL Server 2005 中创建的?是在创建查询执行计划时还是在执行存储过程时?
if (@x = 1)
begin
select 1 as Text into #Temptable
end
else
begin
select 2 as Text into #Temptable
end
【问题讨论】:
标签:
sql-server
sql-server-2005
temp-tables
【解决方案2】:
您可能还想考虑表变量,它的生命周期完全由您管理。
DECLARE @MyTable TABLE (MyPK INT IDENTITY, MyName VARCHAR(100))
INSERT INTO @MyTable ( MyName ) VALUES ( 'Icarus' )
INSERT INTO @MyTable ( MyName ) VALUES ( 'Daedalus' )
SELECT * FROM @MyTable
我几乎总是使用这种方法,但它确实有缺点。最值得注意的是,您只能使用可以在 TABLE() 构造中声明的索引,这实际上意味着您仅限于主键——不能使用 ALTER TABLE。
【解决方案4】:
虽然它可能会在会话结束时自动删除,但最好在完成后自己删除表格。