sql >> Database >  >> RDS >> Sqlserver

Hoe automatisch een unieke id in SQL genereren, zoals UID12345678?

De enige haalbare oplossing is naar mijn mening het gebruik van

  • een ID INT IDENTITY(1,1) kolom om SQL Server de automatische verhoging van uw numerieke waarde te laten verwerken
  • een berekend, volgehouden kolom om die numerieke waarde om te zetten in de waarde die je nodig hebt

Dus probeer dit:

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, elke keer dat u een rij invoegt in tblUsers zonder waarden op te geven voor ID of UserID :

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

dan zal SQL Server automatisch en veilig verhoog je ID waarde, en UserID zal waarden bevatten zoals UID00000001 , UID00000002 ,...... enzovoort - automatisch, veilig, betrouwbaar, geen duplicaten.

Bijwerken: de kolom UserID is berekend - maar het is nog steeds NATUURLIJK heeft een gegevenstype , zoals een snelle blik in de Objectverkenner onthult:



  1. Hoe krijg ik volledige offline functionaliteit in een web-app met PostgreSQL-database?

  2. Wat is precies het verschil tussen primaire index en secundaire index?

  3. Hoe de codering van de sjabloondatabaseverzameling te wijzigen

  4. Eenheidstesten voor PL/SQL