Ciclos o múltiples rutas: ¿Como se soluciona?

11/01/2005 - 09:09 por Txarlie García | Informe spam
Hola:

Tengo una base de datos con unas tablas que están relacionadas. El
problema está al activar la opción de Actualización en Cascada. Si pongo
esa opción, no me graba algunas relaciones. En este caso que pongo abajo
no me graba una que relacionaría una tabla Buzones con otra de Envases.
El error se puede ver más abajo. Dice algo de ciclos y múltiples rutas ¿A
que se debe? y lo más importante, ¿Como lo puedo solucionar?

La tabla 'Vendedores' se guardó correctamente
La tabla 'TarifasCli' se guardó correctamente
La tabla 'Repartidores' se guardó correctamente
La tabla 'Envases' se guardó correctamente
La tabla 'Calibres' se guardó correctamente
La tabla 'Articulos' se guardó correctamente
La tabla 'Almacenes' se guardó correctamente
Tabla 'Buzones'
- No se puede crear la relación 'FK_Buzones_Envases'.
Error ODBC: [Microsoft][ODBC SQL Server Driver][SQL Server]Si introduce
la restricción FOREIGN KEY 'FK_Buzones_Envases' en la tabla 'Buzones',
podrían producirse ciclos o múltiples rutas en cascada. Especifique ON
DELETE NO ACTION o UPDATE NO ACTION, o bien modifique otras restricciones
FOREIGN KEY.
[Microsoft][ODBC SQL Server Driver][SQL Server]No se puede crear la
restricción. Consulte los errores anteriores.

Yo necesito que actualice las tablas en cascada...

Gracias por adelantado y un saludo.

Carlos García
 

Leer las respuestas

#1 Carlos Sacristán
11/01/2005 - 10:06 | Informe spam
Sin el script de las tablas poco podemos ayudarte, pero tu error viene
provocado por una situación parecida la ejemplo que te voy a poner:

supón que tenemos tres tablas: A, B y C. Se ha establecido una
eliminación en cascada de modo que si eliminas un registro en A, se eliminan
automáticamente en B y en C. Hasta aquí todo bien, pero resulta que también
se ha establecido una eliminación en cascada entre los registros de B y C:
si se elimina un registro en B, lo mismo ocurrirá con el existente en la
tabla C.

La situación anterior es un poco lo que te está ocurriendo en las
relaciones que has establecido en tus tablas. SQL Server no permite la
opción de múltiples rutas de actualización del mismo registro (en este caso
los de la tabla C son afectados por el borrado en cascada de la tabla A y el
borrado en cascada de la tabla B)

Revisa tus relaciones para que esta situación no se dé.


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Txarlie García" escribió en el mensaje
news:
Hola:

Tengo una base de datos con unas tablas que están relacionadas. El
problema está al activar la opción de Actualización en Cascada. Si pongo
esa opción, no me graba algunas relaciones. En este caso que pongo abajo
no me graba una que relacionaría una tabla Buzones con otra de Envases.
El error se puede ver más abajo. Dice algo de ciclos y múltiples rutas ¿A
que se debe? y lo más importante, ¿Como lo puedo solucionar?

La tabla 'Vendedores' se guardó correctamente
La tabla 'TarifasCli' se guardó correctamente
La tabla 'Repartidores' se guardó correctamente
La tabla 'Envases' se guardó correctamente
La tabla 'Calibres' se guardó correctamente
La tabla 'Articulos' se guardó correctamente
La tabla 'Almacenes' se guardó correctamente
Tabla 'Buzones'
- No se puede crear la relación 'FK_Buzones_Envases'.
Error ODBC: [Microsoft][ODBC SQL Server Driver][SQL Server]Si introduce
la restricción FOREIGN KEY 'FK_Buzones_Envases' en la tabla 'Buzones',
podrían producirse ciclos o múltiples rutas en cascada. Especifique ON
DELETE NO ACTION o UPDATE NO ACTION, o bien modifique otras restricciones
FOREIGN KEY.
[Microsoft][ODBC SQL Server Driver][SQL Server]No se puede crear la
restricción. Consulte los errores anteriores.

Yo necesito que actualice las tablas en cascada...

Gracias por adelantado y un saludo.

Carlos García

Preguntas similares