Ya he escuchado muchas veces personas preguntando por como reiniciar los valores de un campo que es Identity en SQL Server. Es muy común ésta tarea en migraciones, reimplementaciones y otros.
Existen varias maneras de lograr éste cometido, una es directa y otras “efectos colaterales” de ciertas acciones. La manera explicita de lograr sólo el reinicio de sus valores es la siguiente:
1 | DBCC CHECKIDENT ([NOMBRE_TABLA], RESEED,0); -- solo deben reemplazar por el nombre de su tabla |
Cuando decía efecto colateral de ciertas acciones, me refería a que cuando hacemos un TRUNCATE de una tabla también se reiniciarán los valores de todos sus campos identity. Obviamente ésta no es una vía si no queremos perder los valores almacenados, pero si nos ahorrará los pasos de utilizar DBCC + DELETE.
Con respecto a reiniciar valores identity en campos que son PK no compuestas, y no eliminar sus datos en las tablas, tienen que tener en cuenta que si el identity que se creará ya existe en uno de los registros les devolverá una excepción de duplicación de PK.
Articulos Relacionados:









en
en
en
Excelente, muchas gracias por la aclaración. Me ayudaron a solucionar un problema incómodo que tenía con una tabla que ya me estaba generando overflow.