一.比如說要判斷表A中的字段C是否存在兩個方法:
(1) 直接查表——有點笨,有點常規
IF EXISTS (
SELECT 1 FROM SYSOBJECTS T1
INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID
WHERE T1.NAME='A' AND T2.NAME='C'
)
PRINT '存在'
ELSE
PRINT '不存在'
(2) 直接判斷列長度的函數——短小精悍,可謂精典
IF COL_LENGTH('A', 'C') IS NOT NULL
PRINT N'存在'
ELSE
PRINT N'不存在'
例如:
方法一:
select * from syscolumns where id=object_id('表名') and name='列名'
說明:存在則返回此列的一條說明記錄,不存在返回空;
方法二:
select count(*) from sysobjects a,syscolumns b where a.id=b.id and b.name='flag1' and a.type='u' and a.name='T_Pro_ProductClass'
說明:存在返回1,不存在則返回0
二.判斷表是否存在、創建表、並加索引:
三、判斷存儲過程是否存在,並創建存儲過程:
四.判斷函數是否存在並創建函數: