sqlserver 各種判斷是否存在(表名、函數、存儲過程....)

庫是否存在
if exists(select *from master..sysdatabaseswhere name=N'庫名')
print'exists'
else
print'not exists'
---------------
-- 判斷要創建的表名是否存在
if exists (select *from dbo.sysobjectswhere 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
Begin
print'存在'
End
Else
Begin
print'不存在'
End
---------------
-- 判斷要創建的存儲過程名是否存在
if exists (select *from dbo.sysobjectswhere id = object_id(N'[dbo].[存儲過程名]')and OBJECTPROPERTY(id, N'IsProcedure') = 1)
-- 刪除存儲過程
drop procedure [dbo].[存儲過程名]
GO
---------------
-- 判斷要創建的視圖名是否存在
if exists (select *from dbo.sysobjectswhere id = object_id(N'[dbo].[視圖名]')and OBJECTPROPERTY(id, N'IsView') = 1)
-- 刪除視圖
drop view [dbo].[視圖名]
GO
---------------
-- 判斷要創建的函數名是否存在
if exists (select *from sysobjectswhere xtype='fn' and name='函數名')
if exists (select *from dbo.sysobjectswhere id = object_id(N'[dbo].[函數名]')and xtypein (N'FN', N'IF', N'TF'))
-- 刪除函數
drop function [dbo].[函數名]
GO
if col_length('表名','列名')is null
print'不存在'
select 1from sysobjectswhere idin (select idfrom syscolumnswhere name='列名')and name='表名'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章