mssql sqlserver if exists 用法大汇总
摘要:
下文讲述sqlserver中,更新脚本中常用if exists关键字的用法说明,如下所示:
实验环境:sql server 2008 R2
一、检测数据库是否存在于当前数据库引擎下
if exists (select * from sys.databases where name = ’数据库名称’)
begin
print '数据库名称--存在'
end
二、检测数据表是否存在于指定数据库下
if exists (select * from sysobjects where id = object_id(N’[数据表名称]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
begin
print '数据表名称---存在'
end
三、检测存储过程是否存在的方法
if exists (select * from sysobjects where id = object_id(N’[存储过程名称]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
begin
print '存储过程名称-存在'
end
四、临时表是否存在的方法
if object_id(’tempdb..#临时表名’) is not null
begin
print '临时表名--存在'
end
五、视图是否存在的方法
IF EXISTS (SELECT * FROM sys.views WHERE object_id = ’[dbo].[视图名称]’
begin
print '视图名称存在'
end
六、函数是否存在的检测方法
if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[函数名称]’) and xtype in (N’FN’, N’IF’, N’TF’))
begin
print '函数名称--存在'
end
七、获取用户自定义对象信息
SELECT [name] as [对象名称],
[id] as [对象编号],
crdate as [对象创建时间]
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 = 扩展存储过程
*/
八、检测数据列是否存在的方法
if exists(select * from syscolumns where id=object_id(’数据表名称’) and name=’数据列’)
begin
print '数据列---存在'
end
九、是否为自增列检测
if columnproperty(object_id(’table’),’列名’,’IsIdentity’)=1
begin
print 'table下“列名”为自增列'
end
十、检测数据表中是否存在索引
if columnproperty(object_id(’table’),’列名’,’IsIdentity’)=1
begin
print 'table下“列名”为自增列'
end
转自:http://www.maomao365.com/?p=9094
mssql sqlserver if exists 用法大汇总的更多相关文章
- mssql sqlserver 关键字 GROUPING用法简介及说明
转自: http://www.maomao365.com/?p=6208 摘要: GROUPING 用于区分列是否由 ROLLUP.CUBE 或 GROUPING SETS 聚合而产生的行 如果是原 ...
- MSSQL sqlserver系统函数教程分享
摘要: 下文收集了sqlserver函数教程,为每一个函数都进行了相关举例说明, 如下所示: sqlserver聚合函数教程: mssql sqlserver avg聚合函数使用简介 mssql sq ...
- mssql sqlserver 如何将一个日期数据转换为"年份-月份"的格式呢?
摘要: 下文讲述在sqlserver数据库中,将日期数据转换为指定格式的方法分享,如下所示: 实验环境:sqlserver 2008 R2 实现思路: 实现方法1: 使用year函数和month函数获 ...
- SQLServer中exists和except用法
一.exists 1.1 说明 EXISTS(包括 NOT EXISTS)子句的返回值是一个BOOL值.EXISTS内部有一个子查询语句(SELECT ... FROM...),我将其称为EXIST的 ...
- C#开源系统大汇总(个人收藏)
C#开源系统大汇总 一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖 ...
- C#开源资源大汇总
C#开源资源大汇总 C#开源资源大汇总 一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行 ...
- C#源码大汇总
C#高仿QQ2013可在广域网部署聊天系统GG叽叽 动态显示硬盘分区容量饼图 自定义ProgressBar控件高仿Win8进度条 多皮肤精美在线QQ悬浮客服插件 jQuery仿天猫首页多格焦点图片轮播 ...
- oracle中的exists 和not exists 用法 in与exists语句的效率问题
博文来源(oracle中的exists 和not exists 用法):http://chenshuai365-163-com.iteye.com/blog/1003247 博文来源( in与exi ...
- 转 C语言面试题大汇总
转 C语言面试题大汇总,个人觉得还是比较全地!!! \主 题: C语言面试题大汇总,个人觉得还是比较全地!!! 作 者: free131 (白日?做梦!) 信 誉 值: 100 ...
随机推荐
- ES6-字符串模板
es6字符串模板 // es5 let ananiah = "大诶呀"; let blog = "我要忘了你的样子"+ ananiah; console.log ...
- Android 组件化最佳实践 ARetrofit 原理
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/TXFt7ymgQXLJyBOJL8F6xg作者:朱壹飞 ARetrofit 是一款针对Android ...
- 如何确定UNDO_RETENTION参数的值以避免ORA-1555 (Doc ID 822411.1)
How to Determine the Value Of UNDO_RETENTION Parameter to Avoid ORA-1555 (Doc ID 822411.1) APPLIES T ...
- docker上启动nginx,并配置修改nginx的配置文件
1.使用docker 下载nginx 镜像 docker pull nginx 2.启动nginx docker run --name nginx -p 80:80 -d nginx 这样就简单的把 ...
- 详解C++ STL map 容器
详解C++ STL map 容器 本篇随笔简单讲解一下\(C++STL\)中的\(map\)容器的使用方法和使用技巧. map容器的概念 \(map\)的英语释义是"地图",但\( ...
- angular路由事件
Angular 4检测路由变化,可以使用router.events来监听: 支持的事件类型: NavigationStart:导航开始 NavigationEnd:导航结束 NavigationCan ...
- [开源] FreeSql 配套工具,基于 Razor 模板实现最高兼容的生成器
FreeSql 经过半年的开发和坚持维护,在 0.6.x 版本中完成了几大重要事件: 1.按小包拆分,每个数据库实现为单独 dll: 2.实现 .net framework 4.5 支持: 3.同时支 ...
- 1+x 证书 Web 前端开发 HTML5 专项练习
官方QQ群 1+x 证书 Web 前端开发 HTML5 专项练习 http://blog.zh66.club/index.php/archives/193/
- Ajax和跨域请求
Ajax 一.概述 Web 程序最初的目的就是将信息(数据)放到公共的服务器,让所有网络用户都可以通过浏览器访问. 在次之前,我们可以通过以下几种方式让浏览器发出对服务端的请求,获取服务端的数据: 地 ...
- 前端笔记之React(七)redux-saga&Dva&路由
一.redux-saga解决异步 redux-thunk 和 redux-saga 使用redux它们是必选的,二选一,它们两个都可以很好的实现一些复杂情况下redux,本质都是为了解决异步actio ...