在企業管理器中刪除字段是方便了些,但對於數據量大的表,往往要等上好久,很考驗人的耐性。
使用SQL來操作相對來說比較快滴,但往往有好多問題,比如刪除某個字段,使用如下語句:
alter table table_name drop column column_name
在字段沒有默認值的時候可以刪除,一旦字段有默認值,就會出現:對象'DF_table_name_column_name' 依賴於 列'column_name'。由於一個或多個對象訪問此列,ALTER TABLE DROP COLUMN column_name 失敗。錯誤警報。
此刻怎麼辦呢,當然首先去掉此列的默認值了。難道沒有SQL語句可以實現這個操作麼?看下邊的語句:
declare @name varchar(20)
select @name = b.name from sysobjects b join syscolumns a on
b.id = a.cdefault where a.id = object_id('table_name') and a.name = 'column_name'
exec('alter table test drop constraint ' + @name)
去掉列的默認值後(其實是去掉列約束),再執行alter table table_name drop column column_name 語句,列被刪除了。當然也可以一起執行整個語句。