SQL Server 2008 中判断对象是否存在
2013-11-01 14:03
232 查看
1、判断数据库是否存在
1 if exists
(select * from sys.databases where name
= '数据库名')
2 drop database [数据库名]
2、判断表是否存在
1 if exists
(select * from sysobjects where id
= object_id(N'[表名]')
and OBJECTPROPERTY(id, N'IsUserTable')=
1)
2 drop table [表名]
3、判断存储过程是否存在
1 if exists
(select * from sysobjects where id
= object_id(N'[存储过程名]')
and OBJECTPROPERTY(id, 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 sys.views WHERE object_id
= '[dbo].[视图名]'
6、判断函数是否存在
1 if exists
(select * from dbo.sysobjects where id
= object_id(N'[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 exists(select * from syscolumns where id=object_id('表名')
and name='列名')
2 alter table
表名 drop column
列名
9、判断列是否自增列
1 if columnproperty(object_id('table'),'col','IsIdentity')=1
2 print '自增列'
3 else
4 print '不是自增列'
5 SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('表名')
AND is_identity=1
10、判断表中是否存在索引
1 if exists(select * from sysindexes where id=object_id('表名')
and name='索引名')
2 print '存在'
3 else
4 print '不存在
11、查看数据库中对象
1 SELECT * FROM sys.sysobjects WHERE name='对象名'
作者:不详;来源:网络
1 if exists
(select * from sys.databases where name
= '数据库名')
2 drop database [数据库名]
2、判断表是否存在
1 if exists
(select * from sysobjects where id
= object_id(N'[表名]')
and OBJECTPROPERTY(id, N'IsUserTable')=
1)
2 drop table [表名]
3、判断存储过程是否存在
1 if exists
(select * from sysobjects where id
= object_id(N'[存储过程名]')
and OBJECTPROPERTY(id, 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 sys.views WHERE object_id
= '[dbo].[视图名]'
6、判断函数是否存在
1 if exists
(select * from dbo.sysobjects where id
= object_id(N'[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 exists(select * from syscolumns where id=object_id('表名')
and name='列名')
2 alter table
表名 drop column
列名
9、判断列是否自增列
1 if columnproperty(object_id('table'),'col','IsIdentity')=1
2 print '自增列'
3 else
4 print '不是自增列'
5 SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('表名')
AND is_identity=1
10、判断表中是否存在索引
1 if exists(select * from sysindexes where id=object_id('表名')
and name='索引名')
2 print '存在'
3 else
4 print '不存在
11、查看数据库中对象
1 SELECT * FROM sys.sysobjects WHERE name='对象名'
作者:不详;来源:网络
相关文章推荐
- SQL Server 2008 中判断对象是否存在
- [sql] SQL Server判断对象是否存在
- SQL Server判断对象是否存在 (if exists (select * from sysobjects )(转)
- sql server 2000/2005/2008 判断存储过程、触发器、视图是否存在并删除
- sql server 2000/2005/2008 判断存储过程、触发器、视图是否存在并删除
- [sql] SQL Server判断对象是否存在
- SQL Server判断对象是否存在
- SQL Server判断对象是否存在
- [sql] SQL Server判断对象是否存在
- SQL Server判断对象是否存在 (if exists (select * from sysobjects )(转)
- SQL Server判断对象是否存在 (if exists (select * from sysobjects )(转)
- SQL Server判断对象是否存在 (if exists (select * from sysobjects )
- SQL Server判断对象是否存在(整理中...)
- SQL Server判断对象是否存在
- SQL Server判断对象是否存在 (if exists (select * from sysobjects )(转)
- SQL Server判断对象是否存在 (if exists (select * from sysobjects )
- SQL Server判断对象是否存在
- SQL Server判断对象是否存在 (if exists (select * from sysobjects )(转)
- 判断某张表是否存在在数据库中(access 2003 与sql server 2008)
- SQL Server判断对象是否存在