[SQL] - 增修表單欄位

  • 1466
  • 0

不論開發或是專案上線,資料表增修欄位是不可避免的事情,本篇記錄幾個常用的增修資料表欄位語法。

新增資表欄位格式:

ALTER TABLE  資料表名字 ADD 新增欄位名字 新增欄位屬性(如果是Nvarchar或是Varchar 則設定長度大小) 是否為必填

EX:ALTER TABLE Employee ADD Address nvarchar(200) not null

        新增名為 Address 的必填文字欄位至 Employee 資料表且設定大小為200的欄位。

  *注意 如果資料表有就有資料,此時新增欄位如果是非必填則會出現新增錯誤,因為舊有的資料資料庫並不知道賦予甚麼值,所以需先將欄位設定為Null 在賦予舊資料欄位值,在做update 欄位為必填的動作即可 。

EX:ALTER TABLE  UserBasic ADD BirthDay DateTime 

       新增名為 BirthDay 的日期欄位至 UserBasic 資料表如果沒有指定是否為null的話,會預設設定為非必填欄位。


更新資表欄位格式:

ALTER TABLE 資料表名字 ALTER COLUMN 修改欄位名字 修改欄位類型 是否為必填;

EX:ALTER TABLE  UserBasic  ALTER COLUMN BirthDay  DateTime NOT NULL;

       修改在 UserBasic 資料表的BirthDay  欄位為非必填。

      *注意 欄位如果由非必填改為必填的動作須先將所有原本非必填欄位賦予值,再更新欄位為必填,不然會出現Update錯誤。

EX:EXEC sp_rename 'UserBasic.BirthDay ', 'UserBirthDay'; (中間有逗號為區隔)

  修改在 UserBasic 的 BirthDay欄位名稱為->UserBirthDay。


刪除資表欄位格式:

ALTER TABLE 資料表名字  DROP COLUMN 資料表欄位;

EX:ALTER TABLE Employee DROP COLUMN Address;

       移除在 Employee  資料表的 Address 欄位。


已上的增修刪動作,每一步我都會搭配清除本機快取,並做資料表的重新整理來搭配,這樣確保資料欄位異動狀態是最新的。