Den enda genomförbara lösningen enligt min åsikt är att använda
- ett
ID INT IDENTITY(1,1)
kolumn för att få SQL Server att hantera den automatiska ökningen av ditt numeriska värde - en beräknad, beständig kolumn för att konvertera det numeriska värdet till det värde du behöver
Så prova detta:
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, varje gång du infogar en rad i tblUsers
utan att ange värden för ID
eller UserID
:
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
då kommer SQL Server att automatiskt och säkert öka ditt ID
värde och UserID
kommer att innehålla värden som UID00000001
, UID00000002
,...... och så vidare - automatiskt, säkert, tillförlitligt, inga dubbletter.
Uppdatering: kolumnen UserID
är beräknad - men det är fortfarande SJÄLVKLART har en datatyp , som en snabb titt i Objektutforskaren visar: