sqlserver 各種判斷是否存在(表名、函式、儲存過程等)
阿新 • • 發佈:2019-02-15
庫是否存在
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 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.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].[函式名]
GO
if col_length('表名', '列名') is null
print '不存在'
select 1 from sysobjects where id in (select id from syscolumns where name='列名') and name='表名'
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 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.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].[函式名]
GO
if col_length('表名', '列名') is null
print '不存在'
select 1 from sysobjects where id in (select id from syscolumns where name='列名') and name='表名'