sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除

1、判断是否存在addOneArticle这个存储过程 

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

   drop procedure addOneArticle 
2、判断是否存在countAr这个触发器 

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

   drop trigger countAr 
3、判断是否存在View_1这个视图 

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

   DROP View View_1 
4、判断是否存在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 

5、判断表'Tb'是否存在 

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

  DROP TABLE Tb

6、判断数据库是否存在

if exists( select * from master.dbo.sysdatabases where dbid=db_ID( 'scbjdb' ) )

drop database scbjdb

else

print 'no exist scbjdb'

7、判断约束是否存在

 IF  EXISTS( select * from sysobjects a left join syscomments b
 on a.id = b.id where a.parent_obj= object_id('VIPCardType') AND name='DF__VIPCardTy__s_Dis__7AD79D1E')
    BEGIN
       alter table VIPCardType drop constraint DF__VIPCardTy__s_Dis__7AD79D1E
    end 

 

posted @ 2014-09-30 17:54  ck_小科  阅读(409)  评论(0编辑  收藏  举报