SQL Server 2008 中判断对象是否存在

本文介绍了SQL数据库中如何判断数据库、表、存储过程、临时表、视图、函数等对象的存在性,以及如何获取用户创建的对象信息,包括判断列是否存在、是否为自增列、表中是否存在索引等关键操作。

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

  1、判断数据库是否存在
  1 if exists select * from sysdatabases where name '数据库名'
  2   drop database [数据库名]
  2、判断表是否存在
  1 if exists select * from sysobjects where id object_idN'[表名]' and OBJECTPROPERTYid N'IsUserTable' 1
  2   drop table [表名]
  3、判断存储过程是否存在
  1 if exists select * from sysobjects where id object_idN'[存储过程名]' and OBJECTPROPERTYid N'IsProcedure' 1
  2   drop procedure [存储过程名]
  4、判断临时表是否存在
  1 if object_id'tempdb..#临时表名' is not null
  2   drop table #临时表名
              /*当指定临时表名时,除非当前数据库为 tempdb,否则必须在该临时表名之前加上数据库名称。例如:SELECT OBJECT_ID('tempdb..#mytemptable')。*/
  5、判断视图是否存在
  1 -- SQL Server 2000
  2 IF EXISTS SELECT * FROM sysviews WHERE object_id '[dbo][视图名]'
  1 --SQL Server 2008
  2 IF EXISTS SELECT * FROM sysviews WHERE object_id '[dbo][视图名]'
  6、判断函数是否存在
  1 if exists select * from dbosysobjects where id object_idN'[dbo][函数名]' and xtype in N'FN' N'IF' N'TF'))
  2   drop function [dbo][函数名]
  7、获取用户创建的对象信息
  1 SELECT [name][id]crdate FROM sysobjects where xtype'U'
  2 /*

对象类型:

AF = 聚合函数 (CLR)

C = CHECK 约束

D = DEFAULT(约束或独立)

F = FOREIGN KEY 约束

FN = SQL 标量函数

FS = 程序集 (CLR) 标量函数

FT = 程序集 (CLR) 表值函数

IF = SQL 内联表值函数

IT = 内部表

P = SQL 存储过程

PC = 程序集 (CLR) 存储过程

PG = 计划指南

PK = PRIMARY KEY 约束

R = 规则(旧式,独立)

RF = 复制筛选过程

S = 系统基表

SN = 同义词

SQ = 服务队列

TA = 程序集 (CLR) DML 触发器

TF = SQL 表值函数

TR = SQL DML 触发器

TT = 表类型

U = 表(用户定义类型)

UQ = UNIQUE 约束

V = 视图

X = 扩展存储过程

 
          */
  8、判断列是否存在
  1 if existsselect * from syscolumns where idobject_id'表名' and name'列名'
  2   alter table 表名 drop column 列名
  9、判断列是否自增列
  1 if columnpropertyobject_id'table'),'col''IsIdentity')=1
  2   print '自增列'
  3 else
  4   print '不是自增列'
  5   SELECT * FROM syscolumns WHERE object_idOBJECT_ID'表名' AND is_identity1
  10、判断表中是否存在索引
  1 if existsselect * from sysindexes where idobject_id'表名' and name'索引名'
  2   print  '存在'
  3 else
  4   print  '不存在
  11、查看数据库中对象
  1 SELECT * FROM syssysobjects WHERE name'对象名'
  作者:不详;来源:网络
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值