De enige haalbare oplossing is naar mijn mening het gebruik van
- een
ID INT IDENTITY(1,1)
kolom om SQL Server de automatische verhoging van uw numerieke waarde te laten verwerken - een berekend, volgehouden kolom om die numerieke waarde om te zetten in de waarde die je nodig hebt
Dus probeer dit:
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....
)
Nu, elke keer dat u een rij invoegt in tblUsers
zonder waarden op te geven voor ID
of UserID
:
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
dan zal SQL Server automatisch en veilig verhoog je ID
waarde, en UserID
zal waarden bevatten zoals UID00000001
, UID00000002
,...... enzovoort - automatisch, veilig, betrouwbaar, geen duplicaten.
Bijwerken: de kolom UserID
is berekend - maar het is nog steeds NATUURLIJK heeft een gegevenstype , zoals een snelle blik in de Objectverkenner onthult: