检查sql对象是否存在

SQL Server判断对象是否存在   
1 判断数据库是否存在 Sql代码  
if exists (select * from sys.databases where name = ‘数据库名‘)     drop database [数据库名]   
2 判断表是否存在 Sql代码  
if exists (select * from sysobjects where id = object_id(‘表名‘) and objectproperty(id,‘IsUserTable‘) = 1) drop table [表名]  
if exists (select * from sysobjects where name = ‘表名‘ and xtype = ‘U‘) drop table [表名]   
3 判断存储过程是否存在 Sql代码  
if exists (select * from sysobjects where id = object_id(‘[存储过程名]‘) and objectproperty(id, ‘IsProcedure‘) = 1) drop procedure [存储过程名]   
if exists (select 1 from sysobjects where name = ‘存储过程名‘ and xtype = ‘P‘)  drop procedure [存储过程名]  
4 判断临时表是否存在 Sql代码  
if object_id(‘tempdb..#临时表名‘) is not null       drop table #临时表名   
5 判断视图是否存在 Sql代码  
--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 判断函数是否存在 Sql代码  
--  判断要创建的函数名是否存在   
  if exists (select * from dbo.sysobjects where id = object_id(‘[dbo].[函数名]‘) and xtype in (‘FN‘, ‘IF‘, ‘TF‘))   


wk_ad_begin({pid : 21});wk_ad_after(21, function(){$(‘.ad-hidden‘).hide();}, function(){$(‘.ad-hidden‘).show();});


  drop function [dbo].[函数名]  
  if exists (select 1 from sysobjects where name = ‘函数名‘ and xtype in(‘FN‘,‘IF‘,‘TF‘))   drop function [函数名]    
7 获取用户创建的对象信息  Sql代码  
SELECT 1 FROM sysobjects where name = [对象名] and xtype=‘‘   /*   
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 判断列是否存在 Sql代码  
if exists(select * from syscolumns where id=object_id(‘表名‘) and name=‘列名‘)     alter table 表名 drop column 列名     
9 判断列是否自增列 Sql代码  
if columnproperty(object_id(‘table‘),‘col‘,‘IsIdentity‘)=1     print ‘自增列‘   else   
  print ‘不是自增列‘    
SELECT * FROM syscolumns WHERE object_id=OBJECT_ID(‘表名‘)   AND is_identity=1 

 

 


  
10 判断表中是否存在索引 Sql代码  
if exists(select * from sysindexes where id=object_id(‘表名‘) and name=‘索引名‘)       print  ‘存在‘     else     
  print  ‘不存在‘    
11 查看数据库中对象 Sql代码  
SELECT * FROM sys.sysobjects WHERE name=‘对象名‘  
12 查看表中主键是否存在,如存在则将其drop掉 declare @pk varchar(100) 
select @pk=name from sysobjects where parent_obj=object_id(‘表名‘) and xtype=‘PK‘ if @pk is not null 
exec(‘alter table 表名 drop ‘+ @pk)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。