共计 2634 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章主要介绍“sql 怎么判断数据库、表、存储过程等是否存在”,在日常操作中,相信很多人在 sql 怎么判断数据库、表、存储过程等是否存在问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”sql 怎么判断数据库、表、存储过程等是否存在”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
代码:
-- 库是否存在 if exists(select * from master..sysdatabases where name=N 库名)print exists elseprint 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 默认值名称 goalter table 表名 drop column 列名 go------- 判断要创建临时表是否存在 If Object_Id(Tempdb.dbo.#Test) Is Not NullBeginprint 存在 EndElseBeginprint 不存在 End----------------- 判断要创建的存储过程名是否存在 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].[函数名]GOif col_length(表名 , 列名) is nullprint 不存在 select 1 from sysobjects where id in (select id from syscolumns where name= 列名) and name= 表名
sql判断是否存在
-- 判断数据库是否存在 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 Object_Id(Tempdb.dbo.#Test) Is Not Null Begin print 存在 End Else Begin print 不存在 End --------------- -- 判断要创建的存储过程名是否存在 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 dbo.sysobjects where id = object_id(N [dbo].[函数名] ) and xtype in (N FN , N IF , N TF)) -- 删除函数 drop function [dbo].[函数名] GO if col_length(表名 , 列名) is null print 不存在 select 1 from sysobjects where id in (select id from syscolumns where name= 列名) and name= 表名
到此,关于“sql 怎么判断数据库、表、存储过程等是否存在”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!
正文完