post icon

Como reiniciar un campo Identity en SQL Server

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.

Comentarios desde Facebook:

  1. avatar
    Wilson Velasquez COLOMBIA Mozilla Firefox Windows
    28 Marzo 2011 at 15:08 #

    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.

Trackbacks/Pingbacks

  1. Como reiniciar un campo Identity en SQL Server « DbRunas – Noticias y Recursos sobre Bases de Datos UNITED STATES WordPress - 14 Agosto 2010

    […] http://www.devtroce.com/2010/08/14/como-reiniciar-un-campo-identity-en-sql-server/ August 15, 2010   //   MsSQL   //   No Comments   //   […]

Responder