私の意見では、実行可能な唯一の解決策は
を使用することです。-
ID INT IDENTITY(1,1)
SQLServerに数値の自動増分を処理させるための列 - 計算、永続化 その数値を必要な値に変換する列
だからこれを試してみてください:
CREATE TABLE dbo.tblUsers
(ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
UserID AS 'UID' + RIGHT('00000000' + CAST(ID AS VARCHAR(8)), 8) PERSISTED,
.... your other columns here....
)
これで、tblUsers
に行を挿入するたびに ID
の値を指定せずに またはUserID
:
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
そうすれば、SQLServerは自動的かつ安全に ID
を増やします 値、およびUserID
UID00000001
のような値が含まれます 、UID00000002
、......など-自動的に、安全に、確実に、重複はありません。
更新: 列UserID
計算されます -しかし、それでもコース データ型があります 、オブジェクトエクスプローラーをざっと見ると、次のことがわかります。