t-sql判断数据库对象是否存在

1 系统表sys.sysobjects

在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行,详细介绍参考MSDN

2 OBJECTPROPERTY

返回当前数据库中架构范围内的对象的有关信息,MSDN介绍

3 判断数据库、表、视图、存储过程、索引、列是否存在语句

SELECT * FROM sys.sysobjects

GO

/* 

      xtype 的表示参数类型,通常包括如下这些

      C = CHECK 约束

      D = 默认值或DEFAULT 约束

      F = FOREIGN KEY 约束

      L = 日志

      FN = 标量函数

      IF = 内嵌表函数

      P = 存储过程

      PK = PRIMARY KEY 约束(类型是 K)

      RF = 复制筛选存储过程

      S = 系统表

      TF = 表函数

      TR = 触发器

      U = 用户表

      UQ = UNIQUE 约束(类型是 K)

      V = 视图

      X = 扩展存储过程

*/--数据库

IF exists( SELECT 1 from sys. sysdatabases where name = dbname)

begin

       drop database dbname

end



--

IF exists( SELECT 1 from sys. sysobjects where id = object_id (N'tbname') AND OBJECTPROPERTY (id, N'IsUserTable') = 1)

BEGIN

       drop TABLE tbname

END



--存储过程  

IF exists( SELECT 1 from sys. sysobjects where id = object_id(N'System_GetTableCreateSql' )

       AND OBJECTPROPERTY (id, N'IsProcedure') = 1)

BEGIN

       drop PROC System_GetTableCreateSql

END



--函数

IF exists (SELECT 1 from sys.sysobjects where id = object_id('procname' ))

BEGIN

   drop Function procname

END



--视图

IF exists( SELECT 1 from sys. views where object_id = object_id(N'viewname' ))

BEGIN

   drop VIEW viewname

END



--

IF exists( SELECT 1 from syscolumns where id =object_id( 'tbname') and name='columnName' )

BEGIN 

   alter table tbname drop column columnName

END



--索引

IF exists( SELECT 1 from sys. sysindexes where id= object_id('tbname' ) and name='indexName' )

BEGIN

       drop INDEX indexName ON tbname

END

 

 

 

你可能感兴趣的:(t-sql)