用语句往现有表中添加字段时,最好加一个字段是否存在判断,这样语句即使重复执行也没问题。
nvarchar(200)只是一个列子,这里可用实际数据类型替换。TableName、FieldName用实际表名、字段名称代替。
IF COL_LENGTH('TableName', 'FieldName') IS NULL
begin
ALTER TABLE [TableName] ADD [FieldName] nvarchar(200) NULL
end
判断表是否存在
begin到end之间的语句块按实际情况进行替换,TableName用实际表名代替。
IF EXISTS(SELECT * FROM sysobjects WHERE xtype = 'U' AND name = 'TableName')
begin
DROP TABLE dbo.[TableName];--删除表
end
判断索引是否存在
begin到end之间的语句块按实际情况进行替换,TableName、IndexName用实际表名、索引名代替。
if exists(select object_name(object_id) tableName,name,type_desc from sys.indexes where object_name(object_id)='TableName' and name='IndexName')
begin
drop INDEX [Index] ON dbo.[TableName];--删除索引
end
还可以用type_desc来区分聚集型索引和非聚集型索引,CLUSTERED代表聚集索引,NONCLUSTERED代表非聚集索引。