SQL刪除欄位時的問題

使用 SQL 指令來增加欄位的方法,有:

  • ALTER TABLE ate08h ADD tb_limit decimal (26,4)
  • ALTER TABLE ate08h ADD tb_limit decimal (26,4) Not Null constraint D08htb_limit Default (0)

 

使用 SQL 指令來刪除欄位的方法,有:

  • ALTER TABLE ate08h DROP COLUMN tb_limit

 

但是,在用 Drop Column 指令時,卻發生了下列錯誤:

Server: Msg 5074, Level 16, State 1, Line 1
The object 'D08htb_limit' is dependent on column 'tb_limit'.
Server: Msg 4922, Level 16, State 1, Line 1
ALTER TABLE DROP COLUMN tb_limit failed because one or more objects access this column.

這錯誤說明的Drop Column 時,要刪除的該欄位有 D08htb_limit CONSTRAINT 的限制,所以無法正常刪除 !




對於要刪除有設定 CONSTRAINT 的欄位,需要先刪除 CONSTRAINT 設定,才可以再刪除該欄位。
如:
ALTER TABLE ate08h DROP CONSTRAINT D08htb_limit
ALTER TABLE ate08h DROP COLUMN tb_limit

沒有留言: