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: