Den eneste brugbare løsning efter min mening er at bruge
- en
ID INT IDENTITY(1,1)kolonne for at få SQL Server til at håndtere den automatiske stigning af din numeriske værdi - en beregnet, vedvarende kolonne for at konvertere den numeriske værdi til den værdi, du har brug for
Så prøv dette:
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, hver gang du indsætter en række i tblUsers uden at angive værdier for ID eller UserID :
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
så vil SQL Server automatisk og sikkert øg dit ID værdi og UserID vil indeholde værdier som UID00000001 , UID00000002 ,...... og så videre - automatisk, sikkert, pålideligt, ingen dubletter.
Opdatering: kolonnen UserID er beregnet - men det stadig SELVFØLGELIG har en datatype , som et hurtigt kig ind i Object Explorer afslører:
