use Jiepei_WMS; --ÅäÖÃÐÅÏ¢ declare @table varchar(200),@column varchar(200),@newcolumn varchar(200),@objname varchar(500),@tpstr varchar(300); --ÐÞ¸Ä×Ö¶ÎÃû set @table='Department'; set @column='Sorter'; set @newcolumn='SortById'; set @tpstr='int not null';--²»ÄÜÐÞ¸ÄĬÈÏÖµ --ɾ³ý¸Ã×Ö¶ÎË÷Òý declare @indexname varchar(200); select @indexname=IDX.Name from sys.indexes IDX inner join sys.index_columns IDXC on IDX.[object_id]=IDXC.[object_id] and IDX.index_id=IDXC.index_id inner join sys.objects O on O.[object_id]=IDX.[object_id] inner join sys.columns C on O.[object_id]=C.[object_id] and O.type='U' and O.is_ms_shipped=0 and IDXC.Column_id=C.Column_id where O.Name=@table and C.Name=@column; if @indexname is not null exec('drop index ['+@table+'].'+@indexname); --ÐÞ¸Ä×Ö¶ÎÃû¡¢Ä¬ÈÏÖµ¼°ÀàÐÍ if exists(select 1 from syscolumns where id=(select [object_id] as tblID from sys.all_objects where [type]='U' and [name]<>'dtproperties' and [name]=@table) and name=@column) begin set @objname=@table+'.'+@column; exec sp_rename @objname,@newcolumn; exec('alter table ['+@table+'] ALTER column ['+@newcolumn+'] '+@tpstr); end --»¹Ô­¸Ã×Ö¶ÎË÷Òý,Ìî³äÒò×ÓΪ80% if @indexname is not null exec('create nonclustered index IDX_'+@table+'_'+@newcolumn+' on ['+@table+'](['+@newcolumn+']) with fillfactor=80');