Проблема с идентичностью SQL Server - PullRequest
0 голосов
/ 21 марта 2010

Я использую SQL Server и хочу использовать в нем ограничение идентичности

Я знаю, как использовать его следующим образом

create table mytable
(
 c1 int primary key identity(1,1);
)

приведенный выше код работает нормально, но что, если я хочу, чтобы столбец идентификаторов имел значения EMP001, EMP002, ... вместо 1,2 ....

Спасибо заранее, Гуру

Ответы [ 2 ]

4 голосов
/ 21 марта 2010

Столбцы идентичности могут быть только целыми числами.Если вы хотите, чтобы он «выглядел» как EMP001, EMP002 и т. Д., То это просто проблема дисплея, а не хранилища (то есть вам не нужно хранить «EMP001», «EMP002» и т. Д.просто сохраните его как 1, 2, 3 через обычный столбец идентификаторов и отобразите в своем приложении как «EMP001», «EMP002» и т. д.)

2 голосов
/ 21 марта 2010

Создайте вычисляемый столбец, который объединяется следующим образом:

'EMP' + RIGHT('00' + CAST(c1 AS varchar(3)), 3)

В противном случае столбец IDENTITY в качестве суррогатного ключа - это просто бессмысленное число.

Я предполагаю, что у вас будет только 999 строк, или где-то есть другая последовательность?

...