关于if exists的用法及说明
更新时间:2022年09月26日 14:09:45 作者:liessay
这篇文章主要介绍了关于if exists的用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
脚本之家 / 编程助手:解决程序员“几乎”所有问题!
脚本之家官方知识库 → 点击立即使用
1 判断数据库是否存在
2 判断表是否存在
1 2 | if exists ( select * from sysobjects where id = object_id(N '[表名]' ) and OBJECTPROPERTY(id, N 'IsUserTable' ) = 1) drop table [表名] |
3 判断存储过程是否存在
1 2 | if exists ( select * from sysobjects where id = object_id(N '[存储过程名]' ) and OBJECTPROPERTY(id, N 'IsProcedure' ) = 1) drop procedure [存储过程名] |
4 判断临时表是否存在
5 判断视图是否存在
1 2 3 4 5 6 7 | --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 判断函数是否存在
1 2 3 | -- 判断要创建的函数名是否存在 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 获取用户创建的对象信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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 = 扩展存储过程*/ |
8 判断列是否存在
1 2 | if exists( select * from syscolumns where id=object_id( '表名' ) and name = '列名' ) alter table 表名 drop column 列名 |
9 判断列是否自增列
1 2 3 4 | if columnproperty(object_id( 'table' ), 'col' , 'IsIdentity' )=1 print '自增列' else print '不是自增列' |
10 判断表中是否存在索引
1 2 3 4 5 | if exists( select * from sysindexes where id=object_id( '表名' ) and name = '索引名' ) print '存在' else print '不存在11 查看数据库中对象 SELECT * FROM sys.sysobjects WHERE name=' 对象名' |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
最新评论