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:
