需求:ID 欄位為字元型 CHAR(10),格式如 NA01SS-00000001,新增記錄時自動產生流水號。
解法:使用 身分識別欄位 搭配 計算欄位 實現:
CREATE TABLE [MAdmPeo] (
[ID] [numeric](8, 0) IDENTITY(1,1) NOT NULL,
[PeoNo] AS ('NA01SS-' + RIGHT('00000000' + CONVERT(VARCHAR(8), [ID]), 8)),
-- 其他欄位...
)
GO
ID 為數值型身分識別欄位,自動遞增 1,2,3...。PeoNo 為計算欄位 (AS 子句),不佔實體儲存空間,查詢時即時運算。CONVERT(VARCHAR(8), [ID]) 將數字轉字串。'00000000' + ... 左補零至 8 位。RIGHT(..., 8) 取右 8 碼,確保固定長度。'NA01SS-' 串聯後形成完整編號。插入資料時僅需 INSERT INTO MAdmPeo (...) VALUES (...),PeoNo 會自動產生 NA01SS-00000001、NA01SS-00000002 ... 格式。