SQLserver 如何刪除設定了預設值的列
阿新 • • 發佈:2020-12-21
技術標籤:SQLserver資料庫sqlserversql經驗分享mysql
SQLserver 刪除含預設值的列出現以下錯誤:
訊息 5074,級別 16,狀態 1,第 79 行
物件’DF__student__入學時間__3F466844’ 依賴於 列’入學時間’。
訊息 4922,級別 16,狀態 9,第 79 行
由於一個或多個物件訪問此 列,ALTER TABLE DROP COLUMN 入學時間 失敗。
接下來介紹刪除操作
例如以下例子,建立一個學生表:
create table student
(學號 char(9) primary key,
姓名 char(20) unique ,
性別 char(2),
年齡 smallint,
所在系 char(20)
);
再 新增新列 ‘入學時間 date’,並取預設值為‘2020-09-14’.
alter table student
add 入學時間 date default '2020-09-14'
插入元組資料:
接下來執行以下操作:
刪除student 表中的‘入學時間’列
alter table student
drop column 入學時間;
則會出現以下錯誤:
訊息 5074,級別 16,狀態 1,第 79 行
物件’DF__student__入學時間__3F466844’ 依賴於 列’入學時間’。
訊息 4922,級別 16,狀態 9,第 79 行
此時我們應該要先刪除 入學時間 的約束
ALTER TABLE 表名 DROP CONSTRAINT 約束名
而約束名怎麼找?
開啟student表–約束–>入學時間表名
也可以直接 右鍵 表名 [DF__student__入學時間__3F466844]–>編寫約束指令碼為–>DROP到–>新查詢編輯器視窗 直接複製裡面的刪除語句
ALTER TABLE [dbo].[student]
DROP CONSTRAINT [DF__student__入學時間__3F466844]
執行該語句:
即完成刪除設定了預設值的列。