L'unica soluzione praticabile secondo me è usare
- un
ID INT IDENTITY(1,1)
colonna per fare in modo che SQL Server gestisca l'incremento automatico del valore numerico - un calcolato, persistente colonna per convertire quel valore numerico nel valore che ti serve
Quindi prova questo:
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....
)
Ora, ogni volta che inserisci una riga in tblUsers
senza specificare i valori per ID
o UserID
:
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
quindi SQL Server automaticamente e in modo sicuro aumenta il tuo ID
valore e UserID
conterrà valori come UID00000001
, UID00000002
,...... e così via - automaticamente, in modo sicuro, affidabile, senza duplicati.
Aggiornamento: la colonna UserID
è calcolato - ma è ancora OVVIAMENTE ha un tipo di dati , come rivela una rapida occhiata all'Esplora oggetti: