除了用 INFORMATION_SCHEMA.COLUMNS 及 SYS.COLUMNS 來判斷欄位是否存在。
我們還可以使用 COL_LENGTH 來判斷哦!
COL_LENGTH 是用來取得資料表欄位的長度,我們用範例來說明,
CREATE TABLE t1(
c1 INT,
c2 VARCHAR(10)
);
GO
SELECT COL_LENGTH('t1','c1') AS c1_len, COL_LENGTH('t1','c2') AS c2_len;
SELECT COL_LENGTH('t1','c3') AS c3_len;
當發生錯誤(如果欄位不存在),或是沒有檢視物件的權限就會回傳 NULL 。
所以我們就可以用的回傳值是否為 NULL 來判斷欄位是否存在。
IF(SELECT COL_LENGTH('t1','c2')) IS NOT NULL
BEGIN
SELECT 'c2欄位 存在 t1 資料表之中'
END
ELSE
BEGIN
SELECT 'c2 欄位 不存在 t1 資料表之中'
END;
IF(SELECT COL_LENGTH('t1','c3')) IS NOT NULL
BEGIN
SELECT 'c3 欄位 存在 t1 資料表之中'
END
ELSE
BEGIN
SELECT 'c3 欄位 不存在 t1 資料表之中'
END
參考資料
Simple Way to Find Existence of Column in a Table
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^