sql >> Databasteknik >  >> RDS >> Sqlserver

Hur genererar man automatiskt unikt ID i SQL som UID12345678?

Den enda genomförbara lösningen enligt min åsikt är att använda

  • ett ID INT IDENTITY(1,1) kolumn för att få SQL Server att hantera den automatiska ökningen av ditt numeriska värde
  • en beräknad, beständig kolumn för att konvertera det numeriska värdet till det värde du behöver

Så prova detta:

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, varje gång du infogar en rad i tblUsers utan att ange värden för ID eller UserID :

INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)

då kommer SQL Server att automatiskt och säkert öka ditt ID värde och UserID kommer att innehålla värden som UID00000001 , UID00000002 ,...... och så vidare - automatiskt, säkert, tillförlitligt, inga dubbletter.

Uppdatering: kolumnen UserID är beräknad - men det är fortfarande SJÄLVKLART har en datatyp , som en snabb titt i Objektutforskaren visar:



  1. SQL-fråga returnerar data från flera tabeller

  2. Hur man installerar MySQL Workbench på Windows

  3. Uppdatering av databasrader utan att låsa tabellen i PostgreSQL 9.2

  4. Android Room kompileringstid varning om kolumn i främmande nyckel som inte ingår i ett index. Vad betyder det?