Автоматически сгенерированный столбец в SQL Server - PullRequest
0 голосов
/ 10 марта 2011

Есть ли способ автоматически сгенерировать столбец определенной длины в SQL Server?

Например, я хочу, чтобы значением по умолчанию для определенного столбца было 12-значное уникальное число.

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Вы можете использовать bigint тождество с начальным значением 100000000000

create table T (id bigint identity(100000000000, 1), Col1 varchar(50))

И использовать проверочное ограничение, чтобы не дать вам идти далеко.

alter table T with check add constraint CK_T_ID check (id<1000000000000)
1 голос
/ 10 марта 2011

Вы можете иметь столбец BIGINT IDENTITY, который будет генерировать уникальные значения BIGINT, но по умолчанию они не 12 цифр ....

Конечно, основываясь на BIGINT IDENTITY, вы можете создать вычисляемый столбец примерно так:

 ALTER TABLE dbo.YourTable
    ADD AutoField AS 'XY' + RIGHT('0000000000' + CAST(ID AS VARCHAR(10)), 10) PERSISTED

Таким образом, вы автоматически получите значения 1, 2, 3, 4 в ID (в качестве значений идентификаторов) и XY0000000001, XY0000000002 и т. Д. В вычисляемом столбце AutoField.

Это практически единственное "автоматическое" поколение, о котором я знаю (кроме GUID - но они длиннее 12 символов и не числовые).

Что вы пытаетесь здесь сделать? '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...