在編寫我計劃重新運行的T-SQL腳本時,通常我會使用臨時表來存儲臨時數據。由於臨時表是即時創建的,因此我希望能夠在該表存在時才能刪除該表(在創建之前)。確定SQL Server中是否存在臨時表的最佳方法是什麼?
我會發布我使用的方法,但我想看看是否有更好的方法。
在編寫我計劃重新運行的T-SQL腳本時,通常我會使用臨時表來存儲臨時數據。由於臨時表是即時創建的,因此我希望能夠在該表存在時才能刪除該表(在創建之前)。確定SQL Server中是否存在臨時表的最佳方法是什麼?
我會發布我使用的方法,但我想看看是否有更好的方法。
IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
DROP TABLE #TempTable
END
OBJECT_ID函數返回給定對象名稱和類型的內部對象ID。 'tempdb ..#t1'指的是tempdb數據庫中的表#t1。 'U'用於用戶定義的表格。
IF OBJECT_ID('tempdb..#t1', 'U') IS NOT NULL
DROP TABLE #t1
CREATE TABLE #t1
(
id INT IDENTITY(1,1),
msg VARCHAR(255)
)
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
基思,它看起來像查詢會發現普通用戶表,而不是臨時表。 – 2009-01-13 16:06:02