La seule solution viable à mon avis est d'utiliser
- un
ID INT IDENTITY(1,1)pour que SQL Server gère l'incrémentation automatique de votre valeur numérique - un calculé, persistant colonne pour convertir cette valeur numérique en la valeur dont vous avez besoin
Alors essayez ceci :
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....
)
Maintenant, chaque fois que vous insérez une ligne dans tblUsers sans spécifier de valeurs pour ID ou UserID :
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
alors SQL Server va automatiquement et en toute sécurité augmenter votre ID valeur et UserID contiendra des valeurs comme UID00000001 , UID00000002 ,...... et ainsi de suite - automatiquement, en toute sécurité, de manière fiable, sans doublons.
Mise à jour : la colonne UserID est calculé - mais cela reste BIEN SÛR a un type de données , comme un rapide coup d'œil dans l'Explorateur d'objets révèle :
