Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как автоматично да генерирам уникален идентификатор в SQL като UID12345678?

Единственото жизнеспособно решение според мен е използването на

  • 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 разкрива:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на SolarWinds Serv-U на Linux с база данни за удостоверяване на SQL Server

  2. Индекси на SQL Server:Ключови изисквания, въздействие върху производителността и съображения

  3. Каква е разликата между char, nchar, varchar и nvarchar в SQL Server?

  4. Вземете предишния и следващия ред от редове, избрани с условия (WHERE).

  5. SQL Server Преобразуване на цяло число в двоичен низ