Establecer el valor de inicio para la columna con autoincrement

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.