Как автоматически генерировать уникальный идентификатор в SQL, например UID12345678?

Я хочу автоматически генерировать уникальный идентификатор с прикреплением к нему определенного кода.

ex:

UID12345678
CUSID5000

пробовал uniqueidentifier тип данных, но он генерирует код, который не подходит для идентификатора пользователя.

у кого-нибудь есть предложения?

4 ответов


единственным жизнеспособным решением на мой взгляд является использование

  • an ID INT IDENTITY(1,1) столбец, чтобы заставить SQL Server обрабатывать автоматическое приращение вашего числового значения
  • a вычисляется, сохраняется столбец для преобразования этого числового значения в значение, которое вам нужно

так попробуйте это:

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 is вычисляемые - но это все равно КОНЕЧНО есть тип данных, как быстрый взгляд в Обозревателе объектов показывает:

enter image description here


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, 
    [Name] VARCHAR(50) NOT NULL,
)

marc_s's Answer Snap

ответ marc_s Snap


Если вы хотите добавить код вручную можно использовать

PadLeft() или строку.Format () метод.

string id;
char x='0';
id=id.PadLeft(6, x);
//Six character string id with left 0s e.g 000012

int id;
id=String.Format("{0:000000}",id);
//Integer length of 6 with the id. e.g 000012

затем вы можете добавить это с помощью UID.


'-->создание таблиц создать таблицу emp(Eno int identity(100001,1),ename varchar (50))

-->вставить значения вставьте в emp(ename)значения('narendra'),('ajay'),('anil'),('raju')

-->выберите стола выберите * от ЭМП -->выход эмаль кулон Ино 100001 Нарендра 100002 рама 100003 ajay 100004 Анил 100005 Раджу'