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
Ejemplo
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 .
1
2
3
4
5
6
|
DBCC CHECKIDENT
(
table_name
[, { NORESEED | { RESEED [, new_reseed_value ] } } ]
)
[ WITH NO_INFOMSGS ]
|
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.
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola que tal, muchas gracias por tu documentacion, otra forma es hacer un truncate a la tabla, pero eso elimina los datos.
ResponderEliminarSaludos
Eso borraría la tabla no?
Eliminarmuchas gracias!!
ResponderEliminarexcelente
ResponderEliminarY si quiero que inicie en 1 cada año como hago un trigger,
ResponderEliminarse podría si tu campo identity no es la llave primaria
Eliminar