共計 2634 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章主要介紹“sql 怎么判斷數據庫、表、存儲過程等是否存在”,在日常操作中,相信很多人在 sql 怎么判斷數據庫、表、存儲過程等是否存在問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”sql 怎么判斷數據庫、表、存儲過程等是否存在”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
代碼:
-- 庫是否存在 if exists(select * from master..sysdatabases where name=N 庫名)print exists elseprint not exists ----------------- 判斷要創(chuàng)建的表名是否存在 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------- 判斷要創(chuàng)建臨時表是否存在 If Object_Id(Tempdb.dbo.#Test) Is Not NullBeginprint 存在 EndElseBeginprint 不存在 End----------------- 判斷要創(chuàng)建的存儲過程名是否存在 if exists (select * from dbo.sysobjects where id = object_id(N [dbo].[存儲過程名] ) and OBJECTPROPERTY(id, N IsProcedure) = 1)-- 刪除存儲過程 drop procedure [dbo].[存儲過程名]GO----------------- 判斷要創(chuàng)建的視圖名是否存在 if exists (select * from dbo.sysobjects where id = object_id(N [dbo].[視圖名] ) and OBJECTPROPERTY(id, N IsView) = 1)-- 刪除視圖 drop view [dbo].[視圖名]GO----------------- 判斷要創(chuàng)建的函數名是否存在 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 --------------- -- 判斷要創(chuàng)建的表名是否存在 if exists (select * from dbo.sysobjects where id = object_id(N [dbo].[表名] ) and OBJECTPROPERTY(id, N IsUserTable) = 1) -- 刪除表 drop table [dbo].[表名] GO --------------- -- 判斷要創(chuàng)建臨時表是否存在 If Object_Id(Tempdb.dbo.#Test) Is Not Null Begin print 存在 End Else Begin print 不存在 End --------------- -- 判斷要創(chuàng)建的存儲過程名是否存在 if exists (select * from dbo.sysobjects where id = object_id(N [dbo].[存儲過程名] ) and OBJECTPROPERTY(id, N IsProcedure) = 1) -- 刪除存儲過程 drop procedure [dbo].[存儲過程名] GO --------------- -- 判斷要創(chuàng)建的視圖名是否存在 if exists (select * from dbo.sysobjects where id = object_id(N [dbo].[視圖名] ) and OBJECTPROPERTY(id, N IsView) = 1) -- 刪除視圖 drop view [dbo].[視圖名] GO --------------- -- 判斷要創(chuàng)建的函數名是否存在 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 怎么判斷數據庫、表、存儲過程等是否存在”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注丸趣 TV 網站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
正文完