首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 線上修改資料表結構:ALTER TABLE 新增欄位與預設值

     編輯:關於SqlServer

情境

開發環境已修改表結構 (新增 NickName, Birthday),正式環境有大量資料,需不停機同步結構。

步驟

1. 取得開發環境建表腳本

企業管理器右鍵表 → 「產生 SQL 腳本」→ 選擇「建立」與「預設值/擴充屬性」。

2. 提取新欄位定義

[NickName] [VARCHAR] (50) COLLATE Chinese_PRC_CS_AS NOT NULL DEFAULT(''),
[Birthday] [DATETIME] NOT NULL DEFAULT(GETDATE())

3. 執行 ALTER TABLE

ALTER TABLE [dbo].[HR_User] ADD
    [NickName] [VARCHAR] (50) COLLATE Chinese_PRC_CS_AS NOT NULL DEFAULT(''),
    [Birthday] [DATETIME] NOT NULL DEFAULT(GETDATE())
GO

4. 同步擴充屬性 (MS_Description)

EXEC sp_addextendedproperty N'MS_Description', N'用戶暱稱', N'user', N'dbo', N'table', N'HR_User', N'column', N'NickName'
EXEC sp_addextendedproperty N'MS_Description', N'出生日期', N'user', N'dbo', N'table', N'HR_User', N'column', N'Birthday'

注意事項

  • 新增 NOT NULL 欄位 必須指定 DEFAULT,否則現有資料列無法滿足約束。
  • 大表加欄位為中繼資料操作 (秒級),但加預設值會更新每列 (需鎖表),建議低峰期執行。
  • 若需加入索引/外鍵,分開陳述式執行,避免長時間鎖定。
  • 修改前務必完整備份。

刪除/修改欄位

-- 刪除欄位
ALTER TABLE HR_User DROP COLUMN NickName

-- 修改資料型別 (需確保資料相容)
ALTER TABLE HR_User ALTER COLUMN NickName NVARCHAR(100) NOT NULL
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved