如何判断SQL中是否存在表、存储过程、函数等

--判断是否存在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')) 
    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

 

--判断表ABC是否存在

IF OBJECT_ID('ABC','U') IS NOT NULL

DROP Table ABC

猜你喜欢

转载自hellocgc.iteye.com/blog/1528687