2016-03-03 5 views
1

Я пытаюсь добавить диапазон или исключить числа из столбца автоматического увеличения в sql.SQL auto increment range или номера исключений

У нас есть столбец с автоматическим приращением относительно номеров заданий, поскольку каждое задание уникально. Проблема заключается в том, что мы рассматриваем себя как клиента, а номер задания - как 99999, где, когда другие номера заданий заканчиваются, например, 10500. Когда происходит автоматическое приращение, оно следует от 99999. Это способ исключить это или мне нужно вручную установить IDENTITY_INSERT ON и вставить идентификатор самостоятельно?

Заранее спасибо

+0

Если вы используете 'SET IDENTITY_INSERT ON' и вставляете значение 99999, то столбец идентификации будет использовать 100000 в качестве следующего значения. Вы не можете вставлять значения «из последовательности» в столбец идентификатора, не влияя на само по себе значение. –

+0

, так что нет способа установить диапазон для автоматического увеличения? –

+1

Нет - если вам нужны диапазоны и тому подобное, вам нужно заглянуть в объекты 'SEQUENCE', доступные в SQL Server 2012 и новее –

ответ

0

Вы можете засчитывать автоинкрементируемые в «Microsoft SQL Server»
Check: SQL-How to Insert Row Without Auto incrementing a ID Column?
Таким образом, вы можете установить идентификатор это самостоятельно.

Set Identity_Insert [TableName] On 
    -- -------------------------------------------- 
    Insert TableName (pkCol, [OtherColumns]) 
    Values(pkValue, [OtherValues]) 
    -- ---- Don't forget to turn it back off ------ 
    Set Identity_Insert [TableName] Off 
+0

Не совсем то, что я хотел, но буду использовать это в среднем. SQL SEQUENCE, похоже, является тем, чем я занимаюсь. Кажется более автоматизированным. –