547: The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint (la sentencia entró en conflicto con la restricción FOREIGN KEY / CHECK)
SQL Server¿Qué significa?
La sentencia violó una restricción FOREIGN KEY o CHECK. O bien referenció una fila padre que no existe, escribió un valor que incumple una regla CHECK o intentó eliminar una fila padre que aún está referenciada.
¿Por qué ocurre?
FK: la fila padre referenciada por la fila hija insertada no existe. DELETE/UPDATE: hay filas hijas que dependen de la fila padre que se elimina/modifica. CHECK: el valor de la columna no cumple la condición definida.
Cómo solucionarlo
Inserte primero la fila padre y luego la fila hija. Para eliminaciones, elimine primero las filas dependientes o defina ON DELETE CASCADE donde corresponda. Para una violación de CHECK, haga que el valor cumpla la regla. Identifique la restricción violada a partir del nombre de la restricción en el texto del error.
Más entradas de este motor
- 1205Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim (la transacción quedó en deadlock y fue elegida como víctima)
- 2627Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object (violación de restricción PRIMARY KEY / UNIQUE KEY; clave duplicada)
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ... (fila con clave duplicada en un índice único)
- 18456Login failed for user (error de inicio de sesión del usuario)
- 8152String or binary data would be truncated (los datos de cadena o binarios se truncarían)
- 2628String or binary data would be truncated in table, column ...; truncated value (los datos se truncarían en la tabla y columna indicadas)
- 1222Lock request time out period exceeded (se superó el tiempo de espera de la solicitud de bloqueo)