在ETL包開始SQL查詢以下運行對SQL Server 2012數據庫:爲什麼SSIS包創建的全局臨時表在完成後消失?
IF OBJECT_ID(N'tempdb..##SlotChanges') IS NOT NULL
BEGIN
DROP TABLE ##SlotChanges
END
CREATE TABLE ##SlotChanges
(
--Snip
)
的包,那麼寫一些行的臨時表,並用它作爲最終的數據源寫入目標時數據庫。
最後沒有drop命令,因爲它只會在下次運行開始時被檢查,但是如果我然後打開SSMS並針對表運行select,它將返回無效的對象異常。我可以在包運行時通過SSMS查詢表,但是隻要它完成了表的消失。
我的理解是即使包的會話已經丟失,全局臨時表仍應該保留。我想知道是否有人知道是什麼原因導致臨時表在程序包完成後掉落/超出範圍。
你有一個[不正確的認識](http://technet.microsoft.com/en-us/library/ms186986(v = SQL.105)的.aspx)。 「全局臨時表對任何用戶以及創建後的任何連接都是可見的,並且當引用該表的所有用戶都從SQL Server實例斷開時,全局臨時表將被刪除。」 – billinkc