sql server 2000/2005/2008 判斷儲存過程、觸發器、檢視是否存在並刪除

iteye_20954發表於2012-01-04

--判斷是否存在addOneArticle這個儲存過程

if Exists(select name from sysobjects where NAME = 'addOneArticle' and type='P')
drop procedure addOneArticle

--判斷是否存在countAr這個觸發器

if exists(select * from dbo.sysobjects where id = object_id(N'[dbo].[countAr]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger countAr


--判斷是否存在View_1這個檢視

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = N'View_1')
DROP View View_1

--判斷是否存在USER_Fun這個使用者函式(注意此處的type 有兩種,分別是'TF'-Table-valued Function 表值函式 或'FN'-Scalar-valued Function 標量值函式)

if exists(select * from dbo.sysobjects where id = object_id(N'[dbo].[USER_Fun]') and (type = 'FN' or type = 'TF' or type = 'IF'))
DROP FUNCTION USER_Fun

--判斷表'Tb'是否存在

if (exists (SELECT * FROM dbo.sysobjects where id = object_id(N'Tb')and OBJECTPROPERTY(id, N'IsUserTable') = 1))
DROP TABLE Tb


相關文章