首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 臨時表完整指南:本地與全域臨時表的差異、建立與生命週期管理

     編輯:關於SqlServer

什麼是臨時表?

臨時表與永久資料表結構相似,但資料儲存在 tempdb 系統資料庫中。最大特點是當不再使用時會由系統自動清除,不佔用使用者資料庫空間,適合暫存中繼運算結果或階段性資料。

兩種臨時表類型比較

類型命名規則可見範圍自動刪除條件
本地臨時表以單一 # 開頭(如 #Employees)僅建立該表的目前連線可見使用者中斷與 SQL Server 連線時
全域臨時表以雙 ## 開頭(如 ##Employees)建立後所有連線均可存取所有參考該表的連線都中斷時

實際操作範例

-- 建立本地臨時表
CREATE TABLE #MyTempTable (cola INT PRIMARY KEY);
INSERT INTO #MyTempTable VALUES (1);

內部命名機制與限制

當預存程序或多使用者同時建立同名本地臨時表時,SQL Server 會在內部為表名附加數字尾碼以區分。儲存於 tempdb.sysobjects 中的完整名稱 = 使用者指定名稱 + 系統產生尾碼。因此,本地臨時表的指定名稱 不得超過 116 個字元,以預留空間給尾碼。

自動清除規則詳解

  • 預存程序內建立的本地臨時表:程序結束時自動刪除。巢狀預存程序可引用,但呼叫端無法存取。
  • 其他本地臨時表:目前工作階段結束時自動刪除。
  • 全域臨時表:最後一個參考連線中斷時刪除。

除非使用 DROP TABLE 顯式移除,否則皆由系統依作用域自動管理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved