23/08/2004, 02:01
|
| | Fecha de Ingreso: abril-2003 Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 8 meses Puntos: 0 | |
Sacado de la ayuda de SQL-Server Referencia de Transact-SQL DBCC CHECKIDENT
Comprueba el valor de identidad actual de la tabla especificada y, si fuera necesario, corrige el valor de identidad.
Sintaxis
DBCC CHECKIDENT
( 'table_name'
[ , { NORESEED
| { RESEED [ , new_reseed_value ] }
}
]
)
Argumentos
'table_name'
Es el nombre de la tabla en la que se va a comprobar el valor de identidad actual. Los nombres de tablas se deben ajustar a las reglas para los identificadores. Para obtener más información, consulte Utilizar identificadores. La tabla especificada tiene que contener una columna de identidad.
NORESEED
Especifica que el valor de identidad actual no se debe corregir.
RESEED
Especifica que el valor de identidad actual se tiene que corregir.
new_reseed_value
Es el valor que se va a utilizar al reinicializar la columna de identidad.
Observaciones
Si es necesario, DBCC CHECKIDENT corrige el valor de identidad actual de una columna. Sin embargo, el valor de identidad actual no se corrige si la columna de identidad ha sido creada con la cláusula NOT FOR REPLICATION (en la instrucción CREATE TABLE o ALTER TABLE).
Una información de identidad no válida puede provocar el mensaje de error 2627 cuando hay una restricción de clave principal o única en la columna de identidad.
Las correcciones concretas hechas en el valor de identidad actual dependen de las especificaciones de los parámetros.
Instrucción DBCC CHECKIDENT Correcciones de identidad realizadas
DBCC CHECKIDENT ('table_name', NORESEED) No se restablece el valor de identidad actual. DBCC CHECKIDENT devuelve un informe que indica el valor de identidad actual y el valor que debería tener.
DBCC CHECKIDENT ('table_name') o DBCC CHECKIDENT ('table_name', RESEED) Si el valor de identidad actual de una tabla es menor que el valor de identidad máximo almacenado en la columna, se restablece con el valor máximo de la columna de identidad.
DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) El valor de identidad actual se restablece a new_reseed_value. Si no se ha insertado ninguna fila en la tabla desde su creación, la primera fila insertada después de ejecutar DBCC CHECKIDENT utilizará new_reseed_value como la identidad. En caso contrario, la siguiente fila insertada utilizará new_reseed_value +1. Si el valor de new_reseed_value es menor que el valor máximo de la columna de identidad, se generará el mensaje de error 2627 en las siguientes referencias a la tabla.
El valor de identidad actual puede ser mayor que el valor máximo de la tabla. DBCC CHECKIDENT no restablece automáticamente el valor de identidad actual en este caso. Para restablecer el valor de identidad actual cuando sea mayor que el valor máximo de la columna, utilice uno de estos dos métodos:
Ejecute DBCC CHECKIDENT ('table_name', NORESEED) para determinar el valor máximo actual de la columna, y, a continuación, especifique dicho valor como new_reseed_value en la instrucción DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value).
Ejecute DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) con new_reseed_value establecido a un valor muy bajo, y, a continuación, ejecute DBCC CHECKIDENT ('table_name', RESEED).
Conjuntos de resultados
Se especifiquen o no cualquiera de las opciones (para una tabla que contenga una columna de identidad; este ejemplo utiliza la tabla jobs de la base de datos pubs), DBCC CHECKIDENT devuelve este conjunto de resultados (los valores pueden variar):
Checking identity information: current identity value '14', current column value '14'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Permisos
De forma predeterminada, tienen derechos de ejecución de DBCC CHECKIDENT el propietario de la tabla, los miembros de la función fija de servidor sysadmin y las funciones fijas de base de datos db_owner y db_ddladmin y no se pueden transferir.
Ejemplos
A. Restablecer el valor de identidad actual si es necesario
En este ejemplo se restablece el valor de identidad actual, si es necesario, de la tabla jobs.
USE pubs
GO
DBCC CHECKIDENT (jobs)
GO
B. Informar del valor de identidad actual
En este ejemplo se informa del valor de identidad actual de la tabla jobs, y no se corrige el valor de identidad, si fuera incorrecto.
USE pubs
GO
DBCC CHECKIDENT (jobs, NORESEED)
GO
C. Establecer el valor de identidad actual en 30
En este ejemplo se establece el valor de identidad actual de la tabla jobs en 30.
USE pubs
GO
DBCC CHECKIDENT (jobs, RESEED, 30)
GO
Véase también
ALTER TABLE
CREATE TABLE
DBCC
IDENTITY (propiedad)
USE
©1988-2000 Microsoft Corporation. Reservados todos los derechos. |