有些時候在處理 SQL 資料時需要暫時儲存查詢結果,就可以將資料儲存在臨時表中。另外 SQL Server 的變數也不能儲存多個值,這時候也可以透過暫存表來達成。
臨時表有兩種:
下面是建立 區域臨時表 示範:
臨時表和一般資料表的使用方式一樣,都可以新增、修改、刪除、查詢、建立索引、約束等。上面範例中臨時表的資料表名稱就是 #MyTable (有包含 #)
雖然會自動刪除,不過使用完畢最好手動刪除臨時表,避免長時間連線未關閉而持續佔用 tempdb 資源:
參考資料:
Microsoft.Learn - CREATE TABLE (Transact-SQL) #Temporary tables
Microsoft.Learn - tempdb database
建立臨時表
臨時表的建立方式和一般表的建立方式一樣,差別在於資料表名稱是使用井號(#)開頭,並且會建立在 tempdb 中。臨時表有兩種:
- 區域臨時表:使用一個井號(#)開頭,只在當前連線(session)和當前使用者中有效,關閉連線後會自動刪除,例: #MyTabel
- 全域臨時表:使用兩個井號(##)開頭,對所有連線(session)和所有使用者有效,所有連線關閉後會自動刪除,例: ##MyTable
下面是建立 區域臨時表 示範:
CREATE TABLE #MyTable
(
ID INT,
Name NVARCHAR(50)
);
臨時表和一般資料表的使用方式一樣,都可以新增、修改、刪除、查詢、建立索引、約束等。上面範例中臨時表的資料表名稱就是 #MyTable (有包含 #)
雖然會自動刪除,不過使用完畢最好手動刪除臨時表,避免長時間連線未關閉而持續佔用 tempdb 資源:
DROP TABLE #MyTable;
參考資料:
Microsoft.Learn - CREATE TABLE (Transact-SQL) #Temporary tables
Microsoft.Learn - tempdb database
感謝教學~
回覆刪除