mssql sqlserver if exists 用法大彙總


摘要:
下文講述sqlserver中,更新腳本中經常使用if exists關鍵字的用法說明,以下所示:
實驗環境:sql server 2008 R2 sql


 
1、檢測數據庫是否存在於當前數據庫引擎下
 數據庫

if exists (select * from sys.databases where name = ’數據庫名稱’)
begin
print '數據庫名稱--存在' 
end 

2、檢測數據表是否存在於指定數據庫下函數

 if exists (select * from sysobjects where id = object_id(N’[數據表名稱]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) 
begin
print '數據表名稱---存在'
end

3、檢測存儲過程是否存在的方法sqlserver

 

if exists (select * from sysobjects where id = object_id(N’[存儲過程名稱]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1) 
begin
print '存儲過程名稱-存在' 
end

4、臨時表是否存在的方法spa

if object_id(’tempdb..#臨時表名’) is not null 
begin
print '臨時表名--存在'
end

5、視圖是否存在的方法日誌

 IF EXISTS (SELECT * FROM sys.views WHERE object_id =[dbo].[視圖名稱]begin
print '視圖名稱存在'
end 

6、函數是否存在的檢測方法code

if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[函數名稱]’) and xtype in (N’FN’, N’IF’, N’TF’)) 
begin
print '函數名稱--存在'
end

7、獲取用戶自定義對象信息server

 

SELECT [name] as [對象名稱],
[id] as [對象編號],
crdate as [對象建立時間] 
FROM sysobjects 
where xtype=’U’ 
/*
xtype 參數類型,可輸如下值 
C = CHECK 約束 
D = 默認值或 DEFAULT 約束 
F = FOREIGN KEY 約束 
L = 日誌 
FN = 標量函數 
IF = 內嵌表函數 
P = 存儲過程 
PK = PRIMARY KEY 約束(類型是 K) 
RF = 複製篩選存儲過程 
S = 系統表 
TF = 表函數 
TR = 觸發器 
U = 用戶表 
UQ = UNIQUE 約束(類型是 K) 
V = 視圖 
X = 擴展存儲過程 
*/

 

8、檢測數據列是否存在的方法對象

if exists(select * from syscolumns where id=object_id(’數據表名稱’) and name=’數據列’) 
begin
print '數據列---存在'
end 

 9、是否爲自增列檢測blog

 

if columnproperty(object_id(’table’),’列名’,’IsIdentity’)=1 
begin
print 'table下「列名」爲自增列'
end

 

 10、檢測數據表中是否存在索引

 

if columnproperty(object_id(’table’),’列名’,’IsIdentity’)=1 
begin
print 'table下「列名」爲自增列'
end

 

 

 轉自:http://www.maomao365.com/?p=9094

相關文章
相關標籤/搜索