sqlserver 判断数据库、表名、函数、存储过程等是否存在

  • 判断数据库是否存在

if exists(select * from master..sysdatabases where name=N'库名')
    print 'exists'
else
    print 'not exists'
  • 判断对应数据库中表名是否存在(使用的时候注意进入到对应的数据库中)

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
-- 删除表
    drop table [dbo].[表名]
GO
  • 判断对应表中的列名是否存在

IF COL_LENGTH( '表名','列名') IS NULL
    PRINT 'not exists'
ELSE
    PRINT 'exists'
alter table 表名 drop constraint 默认值名称   --删除列对应的默认值
go
alter table 表名 drop column 列名
go
  • 判断要创建临时表是否存在

If Object_Id('Tempdb.dbo.#Test') Is Not Null
    print '存在'
Else
    print '不存在'
  • 判断要创建的存储过程名是否存在

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[存储过程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
-- 删除存储过程
drop procedure [dbo].[存储过程名]
GO
  • 判断要创建的视图名是否存在

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[视图名]') and OBJECTPROPERTY(id, N'IsView') = 1)
--删除视图
drop view [dbo].[视图名]
GO
  • 判断要创建的函数名是否存在

if exists (select * from sysobjects where xtype='fn' and name='函数名')
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF'))
-- 删除函数
drop function [dbo].[函数名]
GO
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 夜莺2517阅读 127,945评论 1 9
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,771评论 28 54
  • 兔子虽然是枚小硕 但学校的硕士四人寝不够 就被分到了博士楼里 两人一间 在学校的最西边 靠山 兔子的室友身体不好 ...
    待业的兔子阅读 2,728评论 2 9
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,306评论 4 8

友情链接更多精彩内容