2013年3月30日 星期六

[SQL] @TempTable、#TempTable及##TempTable的差異


變數宣告使用DECLARE陳述式宣告
例如
DECLARE @TableName TABLE(
columnName INT
)

此宣告方式是把變數記在記憶體中,執行速度也比較快。適合處理比較小的資料量。



暫存表(Temporary Tables)的表示為
CREATE TABLE #TableName(
columnName INT
)

此暫存表把資料記在硬碟,適合資料量大的處理
在同一個session才能存取到此暫存表
在session關閉時,table會自動被drop,但是最好還是自己下指令drop,不要讓系統自動回收




全域暫存表(Global Temporary Tables)的表示為
CREATE TABLE ##TableName(
columnName INT
)

也就是說這個Table在其它Session有可以被存取到

沒有留言:

張貼留言