Подтвердить что ты не робот

Установить начальное значение для столбца с автоинкрементами

У меня есть таблица Orders со следующими полями:

Id | SubTotal | Налоги | Доставка | DateCreated

Столбец Id имеет значение autoincrement(1,1).

Это должно использоваться в витрине электронной торговли. Иногда текущий магазин электронной коммерции переносится на мою платформу, и у них уже есть заказы, что может означать, что их текущий Order.Id - это, например, 9586.

Я хочу, чтобы начало autoincrement начиналось с этого значения.

Как я могу это сделать?

4b9b3361

Ответ 1

Из Сброс столбцов идентификаторов SQL Server:

Получение идентификатора для таблицы Employees:

DBCC checkident ('Employees')

Восстановление семантику идентификации (если по какой-либо причине база данных вставляет повторяющиеся идентификаторы):

DBCC checkident ('Employees', reseed)

Изменение семени идентичности для таблицы Employees до 1000:

DBCC checkident ('Employees', reseed, 1000)

Следующая вставленная строка начнется с 1001.

Ответ 2

Вам нужно установить семантику Identity для этого значения:

CREATE TABLE orders
(
 id int IDENTITY(9586,1)
)

Чтобы изменить текущую таблицу:

ALTER TABLE orders ALTER COLUMN Id IDENTITY (9586, 1);

Дополнительная информация о CREATE TABLE (Transact-SQL) IDENTITY (Свойство)

Ответ 3

Также обратите внимание, что вы не можете установить значение для столбца IDENTITY. Однако вы можете указать личность строк, если вы установите IDENTITY_INSERT в положение ON для своей таблицы. Например:

SET IDENTITY_INSERT Orders ON

-- do inserts here

SET IDENTITY_INSERT Orders OFF

Эта вставка будет reset идентификатор к последнему вставленному значению. Из MSDN:

Если введенное значение больше текущего значения идентификации для в таблице SQL Server автоматически использует новое вставленное значение в качестве текущее значение идентификации.