首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 自動遞增欄位(Identity)完整設定指南

     編輯:MySQL 資料庫相關知識

SQL Server 使用 IDENTITY 屬性實現自動遞增編號(類似 Access 的 AutoNumber)。本文涵蓋 GUI 設定、建表語法、修改種子與遞增值、重置計數器、以及常見誤區。

方法一:SSMS 圖形介面設定

  1. 右鍵資料表 →「設計」
  2. 選取 ID 欄位(資料型別 int)
  3. 下方屬性:「識別規格」→「是」
  4. 設定「識別種子」(起始值,預設 1)與「識別遞增」(遞增值,預設 1)

方法二:建表語法指定 IDENTITY

CREATE TABLE YourTable (
    ID INT IDENTITY(1,1) NOT NULL,  -- 種子=1, 遞增=1
    OtherColumns...
)

參數說明:IDENTITY(Seed, Increment)

  • Seed:起始值
  • Increment:遞增值

❌ 常見錯誤:嘗試 ALTER COLUMN 加 IDENTITY

許多開發者嘗試:

-- 錯誤語法!SQL Server 不支援
ALTER TABLE YourTable ALTER COLUMN ID IDENTITY(1,1)

原因:IDENTITY 只能在 CREATE TABLE 或 ALTER TABLE ... ADD COLUMN 時指定,無法事後修改既有欄位。

正確做法:新增欄位或重建表

方案 A:新增自動編號欄位

ALTER TABLE YourTable ADD NewID INT IDENTITY(1,1)

方案 B:重建表(保留資料)

  1. 建立新表含 IDENTITY 欄位
  2. INSERT INTO NewTable SELECT * FROM OldTable
  3. 刪除舊表、重新命名新表

修改種子值:DBCC CHECKIDENT

重置自動編號下一個值:

-- 下一筆資料 ID 從 101 開始
DBCC CHECKIDENT ('YourTable', RESEED, 100)

💡 若表已清空,RESEED, 0 可讓下一筆從 1 開始。

Access 專用:COUNTER 型別

Access 可用 COUNTER 型別或 AUTOINCREMENT 關鍵字,並支援 ALTER COLUMN ... COUNTER(新起始值, 新遞增值) 修改既有欄位,**但 SQL Server 不支援此語法**。

快速比較表

功能SQL ServerAccess
建表指定自動編號IDENTITY(1,1)AUTOINCREMENT / COUNTER
修改既有欄位為自動編號❌ 不支援✅ ALTER COLUMN ... COUNTER
重置計數器DBCC CHECKIDENTALTER COLUMN ... COUNTER(1,1)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved