语句
if exists(select 1 from syscolumns where name = '列名' and id = object_id('表名'))
...
实际项目例子
首先判断addedColumnName是否存在,如果不存在则增加该列,然后从sourceColumnName列中获取值赋到该列。
if not exists(select 1 from dbo.syscolumns where name=@addedColumnName and ID=object_id(@tableName))
begin
set @cmd='ALTER TABLE '+@tableName+' ADD '+@addedColumnName + ' ' + @dataType + ' not null default 0'
print (@cmd)
exec (@cmd)
if(@addedColumnName != @sourceColumnName)
begin
set @cmd='IF EXISTS ( SELECT c.name FROM dbo.syscolumns c , dbo.sysobjects o' + CHAR(13) + CHAR(10)
+' WHERE c.id=o.id AND o.name='+''''+@tableName+''''+' AND c.name='+''''+@sourceColumnName+''''+ ')'+CHAR(13) + CHAR(10)
set @cmd=@cmd+'Update ' +@tableName+' Set ' + @addedColumnName + '=' + @sourceColumnName
print @cmd
exec(@cmd)
end
end