Установить начальное значение для столбца с автоинкрементами
У меня есть таблица Orders
со следующими полями:
Id | SubTotal | Налоги | Доставка | DateCreated
Столбец Id
имеет значение autoincrement(1,1)
.
Это должно использоваться в витрине электронной торговли. Иногда текущий магазин электронной коммерции переносится на мою платформу, и у них уже есть заказы, что может означать, что их текущий Order.Id
- это, например, 9586
.
Я хочу, чтобы начало autoincrement
начиналось с этого значения.
Как я могу это сделать?
Ответы
Ответ 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 автоматически использует новое вставленное значение в качестве текущее значение идентификации.