Die einzig praktikable Lösung ist meiner Meinung nach die Verwendung von
- eine
ID INT IDENTITY(1,1)-Spalte, damit SQL Server die automatische Erhöhung Ihres numerischen Werts handhabt - eine berechnete, persistente Spalte, um diesen numerischen Wert in den gewünschten Wert umzuwandeln
Versuchen Sie also Folgendes:
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....
)
Jetzt jedes Mal, wenn Sie eine Zeile in tblUsers einfügen ohne Angabe von Werten für ID oder UserID :
INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
dann wird SQL Server automatisch und sicher erhöhen Sie Ihre ID Wert und UserID enthält Werte wie UID00000001 , UID00000002 ,...... und so weiter - automatisch, sicher, zuverlässig, keine Duplikate.
Aktualisierung: die Spalte UserID wird berechnet - aber es ist immer noch NATÜRLICH hat einen Datentyp , wie ein kurzer Blick in den Objekt-Explorer zeigt:
