一.比如说要判断表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
二.判断表是否存在、创建表、并加索引:
三、判断存储过程是否存在,并创建存储过程:
四.判断函数是否存在并创建函数: