2008-09-04 171 views
1

在存儲過程中,何時在SQL Server 2005中創建#Temptable?在創建查詢執行計劃或執行存儲過程時?SQL Server 2005臨時表

if (@x = 1) 
    begin 
     select 1 as Text into #Temptable 
    end 
else 
    begin 
     select 2 as Text into #Temptable 
    end 

回答

2

它在執行時創建並在會話結束時被刪除。

1

雖然它可能在會話結束時自動丟棄,但最好在練習完成後自行放下表格。

1

您可能還想考慮表變量,其生命週期完全由您來管理。

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。