SQL3600N | La opción IMMEDIATE CHECKED de la sentencia SET INTEGRITY no es válida porque la tabla "<nombre-tabla>" no se encuentra en estado de pendiente de comprobación. |
Explicación: Se comprobará que en los datos no se hayan producido violaciones de restricción sólo si la tabla se encuentra en estado de pendiente de comprobación.
Respuesta del usuario: Utilice la sentencia SET INTEGRITY especificando la opción OFF para situar una tabla en estado de pendiente de comprobación.
sqlcode: -3600
sqlstate: 51027
SQL3601W | La sentencia ha hecho que se colocaran una o más tablas en el estado de pendiente de comprobación. |
Explicación: Esto puede producirse en dos situaciones.
Respuesta del usuario: Este es un mensaje de aviso. El usuario debe ejecutar la sentencia SET INTEGRITY con la opción IMMEDIATE CHECKED a fin de validar la integridad de todas las tablas descendientes y dependientes.
sqlcode: +3601
sqlstate: 01586
SQL3602W | El proceso de comprobación de datos ha detectado violaciones de restricción y las ha movido a tablas de excepciones. |
Explicación: Existen filas que violan las restricciones cuya comprobación se especificó mediante la ejecución de la sentencia SET INTEGRITY. Éstas se movieron a las tablas de excepción.
Respuesta del usuario: Compruebe si en las tablas de excepción existen filas que violen las restricciones. Las filas se han eliminado de la tabla original pero pueden corregirse y volver a transferirse desde las tablas de excepción.
sqlcode: +3602
sqlstate: 01603
SQL3603N | El proceso de comprobación de datos efectuado mediante la sentencia SET INTEGRITY ha detectado la violación de la restricción "<nombre-restricción>". |
Explicación: Se ha detectado una fila que viola una restricción definida en una tabla cuya comprobación se había especificado mediante la sentencia SET CONSTRAINST. El nombre "<nombre>" es un nombre de restricción o el nombre de una columna generada.
Respuesta del usuario: La fila no se ha eliminado de la tabla porque no se utilizó la opción FOR EXCEPTION.
Cuando se validen los datos, se recomienda ejecutar la sentencia SET INTEGRITY mediante la utilización de la opción FOR EXCEPTION. Los datos pueden corregirse utilizando la información de la tabla o tablas de excepción.
sqlcode: -3603
sqlstate: 23514
SQL3604N | La tabla de excepción "<nombre-tabla-excepción>" que corresponde a la tabla "<nombre-tabla>" en la sentencia SET INTEGRITY o en el programa de utilidad LOAD no tiene la estructura adecuada, se ha definido con índices, restricciones, columnas generadas o activadores únicos o se encuentra en estado de pendiente de comprobación. |
Explicación: La tabla de excepción que corresponda a una tabla debe tener una definición similar a la de la tabla original. Las columnas opcionales del programa de utilidad son las especificadas en la sección respectiva de la documentación que describe las tablas de excepción. Tal vez no haya ninguna columna generada en la tabla de excepción. No deben definirse restricciones ni activadores en la tabla de excepción. La tabla de excepción tampoco debe estar en estado de pendiente de comprobación.
Respuesta del usuario: Cree la tabla de excepción como se indica en la sección respectiva de la documentación y vuelva a ejecutar el programa de utilidad o la sentencia.
sqlcode: -3604
sqlstate: 428A5
SQL3605N | La tabla "<nombre-tabla>" mencionada en la sentencia SET INTEGRITY no está en la lista de comprobación o es una tabla de excepción que se especifica em más de una ocasión. |
Explicación: Cuando la cláusula FOR EXCEPTION se especifica en la sentencia SET INTEGRITY, este error puede estar ocasionado por alguno de los siguientes motivos:
Respuesta del usuario: Corrija los nombres de las tablas y vuelva a ejecutar el mandato.
sqlcode: -3605
sqlstate: 428A6
SQL3606N | Hay una discrepancia en el número de tablas que se están comprobando y en el número de tablas de excepciones especificadas en la sentencia SET INTEGRITY. |
Explicación: Debe haber una correspondencia unívoca entre las tablas originales y las tablas de excepción que aparecen en la lista.
Respuesta del usuario: Cree la tabla de excepción que falta si todavía no lo ha hecho y especifíquela en la lista para poder ejecutar de nuevo el mandato.
sqlcode: -3606
sqlstate: 428A7
SQL3608N | No puede comprobarse ni restaurarse el estado de Pendiente de comprobación de la tabla dependiente "<nombre-tabla-dependiente>" mediante la utilización de la sentencia SET INTEGRITY mientras la tabla padre "<nombre-tabla-padre>" esté en estado de pendiente de comprobación. |
Explicación: La tabla padre debe borrarse (no mientras esté en estado de pendiente de comprobación) o incluirse en la lista de llamadas para que pueda
Respuesta del usuario: Asegúrese de que la tabla padre no esté pendiente de comprobación ejecutando la sentencia SET INTEGRITY para comprobar la tabla padre.
Se recomienda comprobar en primer lugar la tabla padre. También es posible comprobar la tabla dependiente e incluir la tabla padre en la lista de llamadas. En este caso, el mandato también podría fallar si existen violaciones de restricciones en la tabla padre y no se eliminan. Esto puede suceder si la opción FOR EXCEPTION no se utiliza.
En caso de un ciclo de referencias, todas las tablas deben incluirse en la lista de llamadas.
sqlcode: -3608
sqlstate: 428A8