ifexists⽤法
1判断数据库是否存在
if exists (select*from sys.databases where name = ’数据库名’)
drop database[数据库名]
2判断表是否存在
if exists (select*from sysobjects where id =object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) =1)
drop table[表名]
3判断存储过程是否存在
if exists (select*from sysobjects where id =object_id(N’[存储过程名]’) and OBJECTPROPERTY(id, N’IsProcedure’) =1) drop procedure[存储过程名]
4判断临时表是否存在
if object_id(’tempdb..#临时表名’) is not null
drop table #临时表名
5判断视图是否存在
--SQL Server 2000
IF EXISTS (SELECT*FROM sysviews WHERE object_id= ’[dbo].[视图名]’
--SQL Server 2005
IF EXISTS (SELECT*FROM sys.views WHERE object_id= ’[dbo].[视图名]’ --SQL Server 2000
IF EXISTS (SELECT*FROM sysviews WHERE object_id= ’[dbo].[视图名]’
--SQL Server 2005
IF EXISTS (SELECT*FROM sys.views WHERE object_id= ’[dbo].[视图名]’
6判断函数是否存在
-
- 判断要创建的函数名是否存在
if exists (select*from dbo.sysobjects where id =object_id(N’[dbo].[函数名]’) and xtype in (N’FN’, N’IF’, N’TF’))
drop function[dbo].[函数名]-- 判断要创建的函数名是否存在
7获取⽤户创建的对象信息
SELECT[name],[id],crdate FROM sysobjects where xtype=’U’
/*
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 = 扩展存储过程
*/
exists的用法8判断列是否存在
if exists(select*from syscolumns where id=object_id(’表名’) and name=’列名’)
alter table表名drop column列名
9判断列是否⾃增列
if columnproperty(object_id(’table’),’col’,’IsIdentity’)=1
print ’⾃增列’
else
print ’不是⾃增列’
10判断表中是否存在索引
if exists(select*from sysindexes where id=object_id(’表名’) and name=’索引名’)
print ’存在’
else
print ’不存在
11查看数据库中对象
SELECT*FROM sys.sysobjects WHERE name=’对象名’
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论