Comando DBCC CHECKIDENT
En una
entrega anterior, en Comandos DBCC de validación, indicamos que este comando comprueba el valor de identidad
actual de la tabla especificada en Microsoft SQL Server y, si fuera necesario, lo cambia.
Pero, ¿qué significa eso? Hay que
recordar que en una tabla en Microsoft SQL Server puede indicarse que una columna de tipo
entero tenga la facilidad de ser declarada una columna de identidad, IDENTITY,
estableciendo un valor inicial y un valor de incremento. Es por ello que
también se puede utilizar el comando para establecer manualmente un nuevo valor
de identidad actual para la columna de identidad.
En este
comando será necesario que se localice antes la base de datos que contiene la
tabla con la columna de identidad.
La sintaxis
de este comando en su forma más simple es:
USE [database_name];
GO
DBCC CHECKIDENT (‘table_name’);
GO
Es
importante indicar, que si bien muchos de los comandos DBCC registran actividad en el Log
de Microsoft SQL Server, este comando no genera
una entrada en el archivo, ya que no afecta el funcionamiento de la base de datos.
La sintaxis
que se usa más a menudo es:
USE [database_name];
GO
DBCC CHECKIDENT (‘table_name’, RESEED);
El comando
anterior lleva a cabo una validación de la columna de identidad de la tabla
especificada y restablece el valor de la identidad, al valor especificado
cuando se creó la tabla. Es importante mencionar que este comando no asume por
omisión una tabla de la base de datos, debe indicarse que tabla es la que se
desea validar en su columna de identidad. La sintaxis e información completa de
este comando se encuentran en los libros en línea de Microsoft SQL Server.
Existen
algunos argumentos opcionales que pueden
ser utilizadas con el comando, estos son:
NORESEED
|
Especifica que el valor de
identidad actual no se debe cambiar.
|
RESEED
|
Especifica que el valor de
identidad actual se debería cambiar.
|
new_reseed_value
|
Es el nuevo valor que se
va a usar como valor de identidad actual de la columna de identidad.
|
WITH NO_INFOMSGS
|
Suprime todos los mensajes
de información.
|
Ejemplos de DBCC CHECKIDENT
Mostraré
algunos ejemplos de uso de este comando:
USE [database_name];
GO
DBCC CHECKIDENT ([table_name], NORESEED);
Este
comando efectuará la comprobación de la columna de identidad de la tabla
indicada sin restablecer el valor de la identidad, devuelve el valor de identidad
actual y el valor máximo actual de la columna de identidad.
USE [database_name];
GO
DBCC CHECKIDENT ([table_name]) WITH NO_INFOMSGS
Este
comando efectuará la comprobación de la columna de identidad de la tabla
indicada, sin mostrar mensajes informativos, solo indicara cuando el comando
haya terminado.
USE [database_name];
GO
DBCC CHECKIDENT ([table_name], RESEED,
100) WITH NO_INFOMSGS
Este comando
efectuará la comprobación de la columna de identidad de la tabla indicada,
restableciendo el valor de identidad en 100, sin mostrar los mensajes informativos,
solo indicara que el comando termino. Es importante indicar que si hay
renglones en la tabla que estén siendo ocupados por la columna de identidad, de
acuerdo con la especificación anterior, entonces esos renglones se conservaran
y la siguiente operación iniciara con el valor especificado. Debe tenerse
cuidado cuando se establece un nuevo número de base, ya que en caso de que haya
renglones con valores mayores al
especificado puede generar errores.
Comentarios
Es
necesario indicar que no es posible usar el comando DBCC CHECKIDENT para
realizar el cambio en el
valor de inicialización original que se especificó para una columna de
identidad cuando se creó la tabla o vista, o bien, para reinicializar las filas
existentes de una tabla o vista.
No hay comentarios.:
Publicar un comentario