IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE name LIKE '#temp%')
DROP TABLE #temp;
IF OBJECT_ID('tempdb..#temp') IS NOT NULL
DROP TABLE #temp;
OBJECT_ID('database..object_name') 回傳物件識別碼,不存在則回傳 NULL。對暫存表必須指定 tempdb.. 前綴。
IF EXISTS (
SELECT * FROM sysobjects
WHERE OBJECTPROPERTY(object_id('PerPersonData'), 'IsUserTable') = 1
)
-- 或簡寫
IF OBJECT_ID('PerPersonData', 'U') IS NOT NULL
OBJECTPROPERTY(id, 'IsUserTable') 回傳 1 表示使用者表;'U' 為物件類型代碼(User Table)。
IsProcedure:預存程序IsView:檢視表IsTrigger:觸發程序IsIndexed:是否有索引OBJECT_ID 簡潔高效,建議取代傳統 sysobjects 查詢,提升腳本可讀效能。