加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

判断sqlserver对象是否已存在

发布时间:2020-12-12 14:46:00 所属栏目:MsSql教程 来源:网络整理
导读:? ? --查看对象是否已经存在 ? --数据库是否存在 ? ? --if?exists?(select?*?from?sys.databases?where? name ?=?’数据库名’)?? ? --??drop?database?[数据库名] ? ?? ? if?exists(select?*?from?sys.databases?where? name = 'FGM_POS' ) ? print?'存在'

?

 
 
  1. ?
  2. --查看对象是否已经存在 ?
  3. --数据库是否存在 ?
  4. ?
  5. --if?exists?(select?*?from?sys.databases?where?name?=?’数据库名’)?? ?
  6. --??drop?database?[数据库名] ?
  7. ?? ?
  8. if?exists(select?*?from?sys.databases?where?name='FGM_POS') ?
  9. print?'存在' ?
  10. --drop?database?[数据库名] ?
  11. ?
  12. --表是否存在 ?
  13. ?
  14. --if?exists?(select?*?from?sysobjects?where?id?=?object_id(N’[表名]’)?and?OBJECTPROPERTY(id,?N’IsUserTable’)?=?1)?? ?
  15. --??drop?table?[表名] ?
  16. ?? ?
  17. if?exists?(select?*?from?sysobjects?where?id?=OBJECT_ID(N'[FGM_bt_ePlnMain]')?and?OBJECTPROPERTY(id,N'IsUserTable')=1) ?
  18. print?'存在' ?
  19. --drop?table?[表名] ?
  20. --或 ?
  21. if?exists?(select?*?from?sysobjects?where?id?=OBJECT_ID(N'dbo.FGM_bt_ePlnMain')?and?OBJECTPROPERTY(id,N'IsUserTable')=1) ?
  22. print?'存在' ?
  23. ?
  24. --存储过程是否存在 ?
  25. ?
  26. --if?exists?(select?*?from?sysobjects?where?id?=?object_id(N’[存储过程名]’)?and?OBJECTPROPERTY(id,?N’IsProcedure’)?=?1)?? ?
  27. --??drop?procedure?[存储过程名]? ?
  28. ?? ?
  29. if?exists?(select?*?from?sysobjects?where?id?=OBJECT_ID(N'[FGM_sp_SyncePlnMain]')?and?OBJECTPROPERTY(id,N'IsProcedure')=1) ?
  30. print?'存在' ?
  31. --或 ?
  32. if?exists?(select?*?from?sysobjects?where?id?=OBJECT_ID(N'dbo.FGM_sp_SyncePlnMain')?and?OBJECTPROPERTY(id,N'IsProcedure')=1) ?
  33. print?'存在' ?
  34. ?
  35. --临时表是否存在 ?
  36. ?
  37. --if?object_id(’tempdb..#临时表名’)?is?not?null???? ?
  38. --??drop?table?#临时表名? ?
  39. ?? ?
  40. select?*?into?#temp?from?dbo.FGM_bt_ConsumInfoDetail_B ?
  41. if?OBJECT_ID?('tempdb..#temp')is?not?null ?
  42. print?'存在' ?
  43. --或者 ?
  44. if?exists(select?*?from?tempdb.dbo.sysobjects?where?id=OBJECT_ID(N'tempdb..#temp')and?type='U') ?
  45. print?'存在' ?
  46. ?
  47. --视图是否存在 ?
  48. ----SQL?Server?2000??? ?
  49. --IF?EXISTS?(SELECT?*?FROM?sysviews?WHERE?object_id?=?'[dbo].[视图名]'?? ?
  50. ----SQL?Server?2005??? ?
  51. --IF?EXISTS?(SELECT?*?FROM?sys.views?WHERE?object_id?=?'[dbo].[视图名]'??--SQL?Server?2000 ?
  52. --IF?EXISTS?(SELECT?*?FROM?sysviews?WHERE?object_id?=?'[dbo].[视图名]’ ?
  53. ----SQL?Server?2005 ?
  54. --IF?EXISTS?(SELECT?*?FROM?sys.views?WHERE?object_id?=?’[dbo].[视图名]’ ?
  55. ----SQL?Server?2008 ?
  56. if?exists?(select?*?from?sysobjects?where?id=OBJECT_ID(N'[dc_adplan]')?and?type='V') ?
  57. print?'存在' ?
  58. --或 ?
  59. if?exists?(select?*?from?sysobjects?where?id=OBJECT_ID(N'dbo.dc_adplan')?and?type='V') ?
  60. print?'存在' ?
  61. --drop?view?dbo.dc_adplan ?
  62. ?
  63. --函数是否存在 ?
  64. ?
  65. ?--if?exists?(select?*?from?dbo.sysobjects?where?id?=?object_id(N’[dbo].[函数名]’)?and?xtype?in?(N’FN’,?N’IF’,?N’TF’))???? ?
  66. ?--?drop?function?[dbo].[函数名]? ?
  67. ?? ?
  68. if?exists?(select?*?from?dbo.sysobjects?where?id=OBJECT_ID?(N'dbo.GetResourceName')and?xtype?in?(N'FN',N'IF',N'TF')) ?
  69. print?'存在' ?
  70. --或 ?
  71. if?exists?(select?*?from?dbo.sysobjects?where?id=OBJECT_ID?(N'[GetResourceName]')and?xtype?in?(N'FN',N'TF')) ?
  72. print?'存在' ?
  73. --drop?function?dbo.GetResourceName ?
  74. ?
  75. --列是否存在 ?
  76. ?
  77. --if?exists(select?*?from?syscolumns?where?id=object_id(’表名’)?and?name=’列名’)?? ?
  78. --??alter?table?表名?drop?column?列名? ?
  79. ?
  80. if?exists(select?*?from?syscolumns?where?id?=OBJECT_ID('FGM_bt_ePlnMain')?and?name='ePlnName') ?
  81. print?'存在' ?
  82. --alter?table?表名?drop?column?列名 ?
  83. ?
  84. --判断列是否自自增列 ?
  85. ?
  86. --if?columnproperty(object_id('table'),'col’,’IsIdentity’)=1?? ?
  87. --??print?'自增列'?? ?
  88. --else?? ?
  89. --??print?'不是自增列'?? ?
  90. ?
  91. if?COLUMNPROPERTY(object_id?('FGM_bt_ePlnMain'),'ePlnID','IsIdentity')=1 ?
  92. print?'自增列' ?
  93. else ?
  94. print?'非' ?
  95. ?
  96. ?
  97. --查看数据库中对象 ?
  98. --select?*?from?sys.sysobjects?where?name='对象名'?
  99. ?
  100. select?*?from?sys.sysobjects?where?name='FGM_bt_ePlnMain'?
  101. ?
  102. --获取用户创建的对象信息 ?
  103. ?
  104. SELECT?[name],[id],crdate?FROM?sysobjects?where?xtype='U'?
  105. /*?? ?
  106. xtype?的表示参数类型,通常包括如下这些?? ?
  107. C?=?CHECK?约束?? ?
  108. D?=?默认值或?DEFAULT?约束?? ?
  109. F?=?FOREIGN?KEY?约束?? ?
  110. L?=?日志?? ?
  111. FN?=?标量函数?? ?
  112. IF?=?内嵌表函数?? ?
  113. P?=?存储过程?? ?
  114. PK?=?PRIMARY?KEY?约束(类型是?K)?? ?
  115. RF?=?复制筛选存储过程?? ?
  116. S?=?系统表?? ?
  117. TF?=?表函数?? ?
  118. TR?=?触发器?? ?
  119. U?=?用户表?? ?
  120. UQ?=?UNIQUE?约束(类型是?K)?? ?
  121. V?=?视图?? ?
  122. X?=?扩展存储过程?? ?
  123. */ ?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读