SQL Server語句刪除帶有預設值的欄位

qdrzq發表於2014-04-29
打算刪除tbl_1表的col_1列,但如果此列設定有預設值的話
直接ALTER TABLE tbl_1 DROP COLUMN col_1會提示有物件存在,而無法刪除.
需要先刪除對應的預設值,然後刪除列,具體如下:
 declare @sss varchar(100);
 select @sss=name from sysobjects where xtype='D' and id=
     (select b.cdefault from sysobjects a,syscolumns b where a.id=b.id and a.name='tbl_1'  and b.name='col_1')
 --print @sss
 if @sss<>''
 begin
   exec('alter table tbl_1 drop constraint ' + @sss)
 end
go
    if exists(select * from sysobjects where name='tbl_1' and xtype='U')
    begin
     if exists(select a.* from sysobjects a,syscolumns b
                where a.id=b.id and a.name='tbl_1'
                     and a.xtype='U' and b.name='col_1') 
     ALTER TABLE tbl_1 DROP COLUMN col_1
    end
go

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29512902/viewspace-1151665/,如需轉載,請註明出處,否則將追究法律責任。

相關文章