sakko51150 发表于 2018-10-19 07:25:05

SQL中判断对象是否存在

1、数据库是否存在
  

if exists (select * from sys.databases where name = ’数据库名’)  print '存在'   --       drop database [数据库名]            --如果存在则删除
  

2、表是否存在
  

if exists (select * from sysobjects where>print '存在'       --drop table [表名]                           --如果存在则删除  

3、存储过程是否存在
  

if exists (select * from sysobjects where>print '存在'   --drop procedure [存储过程名]         --如果存在则删除  

4、临时表是否存在
  

if object_id(’tempdb..#临时表名’) is not null  print '存在'--drop table #临时表名                     --如果存在则删除
  
If Object_Id('Tempdb.dbo.#临时表') Is Not Null
  

5、视图是否存在
  

if exists (select * from dbo.sysobjects where>  

  SQL Server 2000
  

--IF EXISTS (SELECT * FROM sysviews WHERE object_id = '.[视图名]'     

  SQL Server 2005
  

--IF EXISTS (SELECT * FROM sys.views WHERE object_id = '.[视图名]'   

  SQL Server 2008
  

if exists (select * from sysobjects where>
print '存在'  
--或
  
if exists (select * from sysobjects where>  
print '存在'
  
--drop view dbo.dc_adplan
  

6、函数是否存在
  

if exists (select * from dbo.sysobjects where>-- drop function .[函数名]
  

7、列是否存在
  

--if col_length('表名', '列名') is null
  if exists(select * from syscolumns where>
  
-- >  

8、判断索引是否存在
  

IFEXISTS (SELECT * FROM sys.check_constraints WHERE object_id = OBJECT_ID(N'.') AND parent_object_id = OBJECT_ID(N'.[表名]'))  
ALTER TABLE .[表名] DROP CONSTRAINT
  

9、判断列是否自自增列
  

if columnproperty(object_id('table'),'col’,’IsIdentity’)=1  print '自增列'
  
else
  print '不是自增列'
  

10、查看数据库中对象
  

select * from sys.sysobjects where name='对象名'   

11、获取用户创建的对象信息
  

SELECT ,,crdate FROM sysobjects where xtype='U'  

补充:
  If object_id(N'对象名',N'对象类型') is not null
  对象类型通常包括如下这些:
  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=同义词
  SQL=服务队列
  TA=程序集(CLR)DML
  TF=SQL表值函数
  TR=SQL DML触发器
  U=表(用户定义类型)
  V=视图
  X=扩展存储过程


页: [1]
查看完整版本: SQL中判断对象是否存在