程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 制作全局臨時表

制作全局臨時表

編輯:關於SqlServer

我們知道,全局臨時表的生命周期一直持續到創建會話(不是創建級別)才終止。有時候,你可能想創建一個不屬於任何會話的全局臨時表。而無論你進行什麼操作,它總是存在,只有顯式的刪除它才能被移除。因此,可以在一個特殊的存儲過程中(使用sp_前綴,在master中創建)創建該表並使用“startup”選項標記該存儲過程。Sql Server會在每次啟動時調用啟動過程(startup procedure)。而且,Sql Server為啟動過程中創建的全局臨時表維護一個大於0的引用計數器,這樣就確保SQL Server不會嘗試自動刪除它。如下所示:

以下為引用的內容:

USE master;
GO
IF OBJECT_ID('dbo.sp_Globals') IS NOT NULL
DROP PROC dbo.sp_Global
GO
CREATE proc dbo.sp_Globals
AS
CREATE TABLE ##Globals
(
id varchar(36) NOT NULL PRIMARY KEY,
value varchar(500)
);
GO
EXEC dbo.sp_procoption 'dbo.sp_Globals','startup','true';

執行並重啟SQL Server後,全局臨時表##Globals會自動重建並一直持續到被顯式刪除。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved