miércoles, 11 de octubre de 2017

Reiniciar Campo Identity de Tabla en SQL SERVER ,Reset Identity SQL Server

Reiniciar Campo Identity

En algunas ocasiones necesitamos reiniciar el campo identity de alguna tabla con esta propiedad, muchas veces este campo es llave y no nos permite editarlo.
Reset Identity SQL Server

La solución es la siguiente:

 1  Primero necesitamos saber en qué id va la tabla, para esto ocupamos la siguiente sentencia:
DBCC CHECKIDENT([NombreDeTuTabla], NORESEED)

Esta sentencia nos dará como resultado el número actual en el que va el consecutivo.
Ejemplo





    Después de saber en cual va procedemos a cambiarlo al nuevo id, para esto ocuparemos la sentencia:DBCC CHECKIDENT([NombreDeTuTabla], RESEED,100)
En este caso 100 es el numero nuero a asignar.
Ejemplo:










3.        Para corroborar el nuevo id ejecutamos el punto numero 1










4.     Si insertamos un nuevo registro tendrá el id 101



El método descrito aquí funciona con todas las versiones de SQL Server: SQL Server 2002, SQL Server 2005, SQL Server 2008, SQL Server 2008R2, SQL Server 2012, SQL Server 2014, SQL Server 2016, hasta la versión más reciente de SQL Server 2017 .

Argumentos

  • nombre_tabla : es el nombre de la tabla para la que se verifica el valor de identidad actual. La tabla especificada debe contener una columna de identidad. Los nombres de las tablas deben seguir las reglas para los  identificadores . Los nombres de dos o tres partes deben estar delimitados, como 'Person.AddressType' o [Person.AddressType].
  • NORESEED : Especifica que el valor de identidad actual no debe cambiarse.
  • RESEED : Especifica que se debe cambiar el valor de identidad actual.
  • new_reseed_value : es el nuevo valor a usar como el valor actual de la columna de identidad.
  • WITH NO_INFOMSGS : suprime todos los mensajes informativos.



7 comentarios:

  1. Hola que tal, muchas gracias por tu documentacion, otra forma es hacer un truncate a la tabla, pero eso elimina los datos.

    Saludos

    ResponderEliminar
  2. Y si quiero que inicie en 1 cada año como hago un trigger,

    ResponderEliminar
    Respuestas
    1. se podría si tu campo identity no es la llave primaria

      Eliminar

Comenta cualquier duda o recomendatorio.