[SQL]用 COL_LENGTH 來判斷欄位是否存在

除了用 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;

image

當發生錯誤(如果欄位不存在),或是沒有檢視物件的權限就會回傳 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 

image

 

參考資料

Simple Way to Find Existence of Column in a Table

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^