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 :