Tengo una tabla Orders
con los siguientes campos:
Id | SubTotal | Impuestos | Envío | Fecha de creacion
La columna Id
está configurada para autoincrement(1,1)
.
Esto se usará en una tienda de comercio electrónico. A veces, una tienda de comercio electrónico actual se migra a mi plataforma y ya tienen pedidos, lo que podría significar que su Order.Id
actual es, por ejemplo, 9586
.
Quiero que el campo autoincrement
comience desde ese valor.
¿Cómo puedo hacer esto?
Desde Restablecer Columnas de Identidad de SQL Server :
Recuperando la identidad de la tabla Employees
:
DBCC checkident ('Employees')
Reparar la semilla de identidad (si por alguna razón la base de datos está insertando identidades duplicadas):
DBCC checkident ('Employees', reseed)
Cambiar la semilla de identidad para la tabla Employees
a 1000:
DBCC checkident ('Employees', reseed, 1000)
La siguiente fila insertada comenzará en 1001.
Debes establecer la semilla de identidad en ese valor:
CREATE TABLE orders ( id int IDENTITY(9586,1) )
Para alterar una tabla actual:
ALTER TABLE orders ALTER COLUMN Id IDENTITY (9586, 1);
Más información sobre CREATE TABLE (Transact-SQL) IDENTITY (Propiedad)
También tenga en cuenta que normalmente no puede establecer un valor para una columna de IDENTIDAD. Sin embargo, puede especificar la identidad de las filas si establece IDENTITY_INSERT en ON para su tabla. Por ejemplo:
SET IDENTITY_INSERT Orders ON -- do inserts here SET IDENTITY_INSERT Orders OFF
Este inserto restablecerá la identidad al último valor insertado. Desde MSDN :
Si el valor insertado es mayor que el valor de identidad actual para la tabla, SQL Server usa automáticamente el nuevo valor insertado como el valor de identidad actual.