表相關
普通表
查詢普通表是否存在可以使用object_id函式,下面的例子是查詢表“t_test”是否存在之后從而進行其他的DLL操作:
if object_id('t_test') is not null begin -- 如果表存在 這段里面寫相關邏輯 select 1 end
臨時表
臨時表同樣可以用object_id但是表名要記得加上庫名和表空間:
if object_id('tempdb..#temp') is not null begin select 1 end
或者
if exists(select 1 from tempdb..sysobjects where name like '#temp%') begin -- 存在 #tempXXXX 表 select 1 end
以上這個條件自行發揮,我這邊使用的是like陳述句,判斷的是只要是#temp開頭的臨時表存在,
欄位
有一個很精簡的寫法,用COL_LENGTH函式,用法:COL_LENGTH('表名','欄位名')
if COL_LENGTH('d_test', 'col1') IS NULL begin -- 欄位在 d_test 存在 select 1 end
索引
索引這邊比較麻煩,但是也有辦法,
可以使用存過sp_helpindex
declare @index table ( index_name varchar(500), index_des varchar(5000), index_keys varchar(500) ) insert into @index exec sp_helpindex 't_test'
上面這段代碼是將t_test表索引、觸發器結構羅列出來放在定義的變數表@index中了,這時候我們查詢這個表會得到結果:

這樣查詢索引存不存在就好辦了
if not exists(select 1 from @index where index_name = 'idx_test') begin -- 索引存在 select 1 end
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/551349.html
標籤:其他
上一篇:分布式編譯系統的搭建
下一篇:返回列表
