Actualizar clave primaria autoincrement en SQL Server

Por defecto SQL Server no deja modificar los índices autoincrement, ni siquiera poniendo la sintaxis:

SET IDENTITY_INSERT TuTabla ON
GO

Para poder actualizar los valores de estos índices hay miles de tutoriales, pero a mi modo de ver todos demasiado complejos u obsoletos, con SQL Server 2016 lo he podido hacer siguiendo los pasos que voy a describir en este post.

Lo primero es actualizar todas las claves foráneas para que al actualizar el valor del índice este se actualice en cascada, esto se puede hacer desde el SSMS sin mayor problema.


Luego eliminare de la clave primaria el autoincrement de la siguiente forma:



Una vez realizado este cambio puedes modificar los valores de los índices en esa columna.

Ojo, no es necesario eliminar la clave primaria ni crear columnas adicionales como dicen otros manuales. Tampoco es necesario que en la consulta ejecutes el comando SET IDENTITY_INSERT TuTabla ON antes. Nada de esto es necesario con este procedimiento.

El último paso es volver a poner esta columna como autoincrement, lo cual haremos poniendo YES en la imagen anterior.

Si has agregado valores al índice seguramente necesites establecer correctamente la semilla del incremento para que el próximo valor lo cargue correctamente, esto lo haremos con esta instrucción:

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)

Comentarios