最善の解決策は、使用することです
ID INT IDENTITY(1,1)
数値の自動インクリメントを処理する SQL Server を取得する列
- その数値を必要な値に変換するための計算された永続化された列
だからこれを試してください:
CREATE TABLE dbo.tblCompany
(ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
CompanyID AS 'X-' + RIGHT('00000' + CAST(ID AS VARCHAR(5)), 5) PERSISTED,
.... your other columns here....
)
ここで、 ortblCompany
の値を指定せずに に行を挿入するたびに:ID
CompanyID
INSERT INTO dbo.tblCompany(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
次に、SQL Server は自動的かつ安全にID
値を増やし、、、...... などのCompanyID
値を含めます- 自動的に、安全に、確実に、重複はありません。X-00001
X-00002
X-
PS: などの接頭辞をどこから取得するかはわかりませんY-
。この解決策 (接頭辞を固定) を自分の状況 (接頭辞を変更) に適応させる必要がありますが、基本的な解決策は同じままです: let SQL Server は自動番号付けを処理し (これが実行可能な唯一の方法です)、計算された永続化された列を使用して余分なものを追加するだけです。