Единственото жизнеспособно решение според мен е използването на
ID INT IDENTITY(1,1)
колона, за да накарате SQL Server да обработва автоматичното нарастване на вашата числова стойност- аизчислено, упорито колона, за да преобразувате тази числова стойност в стойността, от която се нуждаете
Така че опитайте това:
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....
)
Сега всеки път, когато вмъквате ред в tblUsers
без посочване на стойности за ID
или UserID
:
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
тогава SQL Server ще автоматично и безопасно увеличете своя ID
стойност и UserID
ще съдържа стойности като UID00000001
, UID00000002
,...... и така нататък - автоматично, безопасно, надеждно, без дубликати.
Актуализация: колоната UserID
еизчислен - но все пак РАЗбира се има тип данни , тъй като един бърз поглед в Object Explorer разкрива: