bingtuag 发表于 2018-10-24 08:18:00

SQL Server判断对象是否存在 (if exists (select * from sysobjects )

  1 判断数据库是否存在
  Sql代码
  if exists (select * from sys.databases where name = ’数据库名’)
  drop database [数据库名]if exists (select * from sys.databases where name = ’数据库名’)
  drop database [数据库名]
  2 判断表是否存在
  Sql代码

  if exists (select * from sysobjects where>
  drop table [表名]if exists (select * from sysobjects where>  drop table [表名]
  3 判断存储过程是否存在
  Sql代码

  if exists (select * from sysobjects where>
  drop procedure [存储过程名]if exists (select * from sysobjects where>  drop procedure [存储过程名]
  4 判断临时表是否存在
  Sql代码
  if object_id(’tempdb..#临时表名’) is not null
  drop table #临时表名if object_id(’tempdb..#临时表名’) is not null
  drop table #临时表名
  5 判断视图是否存在
  Sql代码
  --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 2000
  IF EXISTS (SELECT * FROM sysviews WHERE object_id = ’.[视图名]’
  --SQL Server 2005
  IF EXISTS (SELECT * FROM sys.views WHERE object_id = ’.[视图名]’
  6 判断函数是否存在
  Sql代码
  --判断要创建的函数名是否存在

  if exists (select * from dbo.sysobjects where>  drop function .[函数名]    --判断要创建的函数名是否存在

  if exists (select * from dbo.sysobjects where>  drop function .[函数名]
  7 获取用户创建的对象信息
  Sql代码
  SELECT ,,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 = 扩展存储过程
  */SELECT ,,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 判断列是否存在
  Sql代码

  if exists(select * from syscolumns where>
  >
  >  9 判断列是否自增列
  Sql代码
  if columnproperty(object_id(’table’),’col’,’IsIdentity’)=1
  print ’自增列’
  else
  print ’不是自增列’
  SELECT * FROM sys.columns WHERE object_id=OBJECT_ID(’表名’)
  AND is_identity=1if columnproperty(object_id(’table’),’col’,’IsIdentity’)=1
  print ’自增列’
  else
  print ’不是自增列’
  SELECT * FROM sys.columns WHERE object_id=OBJECT_ID(’表名’)
  AND is_identity=1
  10 判断表中是否存在索引
  Sql代码

  if exists(select * from sysindexes where>  print’存在’
  else

  print’不存在if exists(select * from sysindexes where>  print’存在’
  else
  print’不存在
  11 查看数据库中对象
  Sql代码
  SELECT * FROM sys.sysobjects WHERE name=’对象名’SELECT * FROM sys.sysobjects WHERE name=’对象名’

页: [1]
查看完整版本: SQL Server判断对象是否存在 (if exists (select * from sysobjects )