服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - sql 判断数据库,表,存储过程等是否存在的代码

sql 判断数据库,表,存储过程等是否存在的代码

2019-11-19 15:31mssql教程网 Sql Server

sql下用了判断各种资源是否存在的代码,很实用。需要的朋友可以参考下。

代码:

  1. --库是否存在 
  2. if exists(select * from master..sysdatabases where name=N'库名'
  3. print 'exists' 
  4. else 
  5. print 'not exists' 
  6. --------------- 
  7. -- 判断要创建的表名是否存在 
  8. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
  9. -- 删除表 
  10. drop table [dbo].[表名] 
  11. GO 
  12. --------------- 
  13. -----列是否存在 
  14.  IF COL_LENGTH( '表名','列名') IS NULL 
  15.   PRINT 'not exists' 
  16. ELSE 
  17.  PRINT 'exists' 
  18. alter table 表名 drop constraint 默认值名称 
  19. go 
  20. alter table 表名 drop column 列名 
  21. go 
  22. ----- 
  23. --判断要创建临时表是否存在 
  24. If Object_Id('Tempdb.dbo.#Test') Is Not Null 
  25. Begin 
  26. print '存在' 
  27. End 
  28. Else 
  29. Begin 
  30. print '不存在' 
  31. End 
  32. --------------- 
  33. -- 判断要创建的存储过程名是否存在 
  34. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[存储过程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
  35. -- 删除存储过程 
  36. drop procedure [dbo].[存储过程名] 
  37. GO 
  38. --------------- 
  39. -- 判断要创建的视图名是否存在 
  40. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[视图名]') and OBJECTPROPERTY(id, N'IsView') = 1) 
  41. -- 删除视图 
  42. drop view [dbo].[视图名] 
  43. GO 
  44. --------------- 
  45. -- 判断要创建的函数名是否存在 
  46. if exists (select * from sysobjects where xtype='fn' and name='函数名'
  47. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF')) 
  48. -- 删除函数 
  49. drop function [dbo].[函数名] 
  50. GO 
  51. if col_length('表名''列名') is null 
  52. print '不存在' 
  53. select 1 from sysobjects where id in (select id from syscolumns where name='列名') and name='表名' 

sql判断是否存在

  1. --判断数据库是否存在  
  2. if exists(select * from master..sysdatabases where name=N'库名')  
  3. print 'exists' 
  4. else 
  5. print 'not exists' 
  6.   
  7. ---------------  
  8. -- 判断要创建的表名是否存在  
  9. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)  
  10. -- 删除表  
  11. drop table [dbo].[表名]  
  12. GO  
  13.   
  14. ---------------  
  15. --判断要创建临时表是否存在  
  16. If Object_Id('Tempdb.dbo.#Test') Is Not Null 
  17. Begin 
  18. print '存在' 
  19. End 
  20. Else 
  21. Begin 
  22. print '不存在' 
  23. End 
  24.   
  25. ---------------  
  26. -- 判断要创建的存储过程名是否存在  
  27. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[存储过程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)  
  28. -- 删除存储过程  
  29. drop procedure [dbo].[存储过程名]  
  30. GO  
  31.   
  32. ---------------  
  33. -- 判断要创建的视图名是否存在  
  34. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[视图名]') and OBJECTPROPERTY(id, N'IsView') = 1)  
  35. -- 删除视图  
  36. drop view [dbo].[视图名]  
  37. GO  
  38.   
  39. ---------------  
  40. -- 判断要创建的函数名是否存在  
  41. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF'))  
  42. -- 删除函数  
  43. drop function [dbo].[函数名]  
  44. GO  
  45.   
  46. if col_length('表名''列名') is null 
  47. print '不存在' 
  48.   
  49. select 1 from sysobjects where id in (select id from syscolumns where name='列名') and name='表名' 

延伸 · 阅读

精彩推荐