码迷,mamicode.com
首页 > 数据库 > 详细

SQL SERVER 判断是否存在数据库、表、列、视图

时间:2015-03-01 11:51:12      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

SQL SERVER 判断是否存在数据库、表、列、视图

--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, NISUSERTABLE) = 1) 
  PRINT  存在   
ELSE   
  PRINT  不存在
--3. 判断存储过程是否存在
IF EXISTS (SELECT * FROM SYSOBJECTS WHERE ID = OBJECT_ID(N[存储过程名]) AND OBJECTPROPERTY(ID, NISPROCEDURE) = 1) 
  PRINT  存在   
ELSE   
  PRINT  不存在
--4. 判断临时表是否存在
IF OBJECT_ID(TEMPDB..#临时表名) IS NOT NULL   
  PRINT  存在   
ELSE   
  PRINT  不存在
--5. 判断视图是否存在
--SQL SERVER 2005  
IF EXISTS (SELECT * FROM SYS.VIEWS WHERE OBJECT_ID = [DBO].[视图名]
  PRINT  存在   
ELSE   
  PRINT  不存在
--6. 判断函数是否存在 
IF EXISTS (SELECT * FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N[DBO].[函数名]) AND XTYPE IN (NFN, NIF, NTF))   
  PRINT  存在   
ELSE   
  PRINT  不存在
--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 = 扩展存储过程 
*/ 
--8. 判断列是否存在
IF EXISTS(SELECT * FROM SYSCOLUMNS WHERE ID = OBJECT_ID(表名) AND NAME = 列名) 
  PRINT  存在   
ELSE   
  PRINT  不存在
--9. 判断列是否自增列
IF COLUMNPROPERTY(OBJECT_ID(表名),列名,ISIDENTITY) = 1 
  PRINT 自增列 
ELSE 
  PRINT 不是自增列
  
SELECT * FROM SYS.COLUMNS WHERE OBJECT_ID = OBJECT_ID(表名)  AND IS_IDENTITY = 1

--10. 判断表中是否存在索引
IF EXISTS(SELECT * FROM SYSINDEXES WHERE ID = OBJECT_ID(表名) AND NAME=索引名)   
  PRINT  存在   
ELSE   
  PRINT  不存在
--11. 查看数据库中对象
SELECT * FROM SYS.SYSOBJECTS WHERE NAME=对象名

 

SQL SERVER 判断是否存在数据库、表、列、视图

标签:

原文地址:http://www.cnblogs.com/liushen/p/4306828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!