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

本文介绍了如何使用SQL Server系统表和内置函数来管理数据库中的各种对象,包括表、存储过程、函数、视图等,并提供了检查和删除这些对象的示例语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

 

转载于:https://www.cnblogs.com/xqhppt/p/3826900.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值