Jediným schůdným řešením je podle mého názoru použít
ID INT IDENTITY(1,1)
sloupec, aby SQL Server zpracoval automatický přírůstek vaší číselné hodnoty- a vypočítané, trvalé sloupec převést tuto číselnou hodnotu na hodnotu, kterou potřebujete
Tak zkuste toto:
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....
)
Nyní pokaždé, když vložíte řádek do tblUsers
bez zadání hodnot pro ID
nebo UserID
:
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
pak SQL Server automaticky a bezpečně zvyšte své ID
hodnotu a UserID
bude obsahovat hodnoty jako UID00000001
, UID00000002
,...... a tak dále - automaticky, bezpečně, spolehlivě, bez duplikátů.
Aktualizace: sloupec UserID
je vypočítán - ale stále SAMOZŘEJMĚ má typ dat , jak odhaluje rychlé nahlédnutí do Průzkumníka objektů: