Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Mensaje de error 1785 se produce cuando se crea una restricción FOREIGN KEY que puede provocar múltiples rutas en cascada

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 321843
Síntomas
Cuando se crea una restricción FOREIGN KEY puede aparecer el siguiente mensaje de error:
Servidor: Mensaje 1785, nivel 16, estado 1, 1 Introducción A FOREIGN KEY restricción 'fk_two' en la tabla 'tabla2' podría producirse ciclos o múltiples rutas en cascada. Especifique ON DELETE NO ACTION o ON UPDATE NO ACTION o modifique otras restricciones FOREIGN KEY. Servidor: Mensaje 1750, nivel 16, estado 1, línea 1 no pudo crear restricción. Consulte los errores anteriores.
Causa
Recibe este mensaje de error porque en SQL Server, una tabla no puede aparecer más de una vez en una lista de todas las acciones de las referenciales en cascada que se inician mediante una instrucción UPDATE o DELETE. Por ejemplo, el árbol de las acciones referenciales en cascada sólo debe tener una ruta a una tabla determinada en el árbol de acciones referenciales en cascada.
Solución
Para evitar este problema, no cree una clave externa que creará más de una ruta a una tabla en una lista de acciones referenciales en cascada.

Puede exigir integridad referencial de varias maneras. Integridad referencial declarativa (DRI) es la forma más básica, pero también es la forma menos flexible. Si necesita más flexibilidad, pero aún desea un alto grado de integridad, puede utilizar los desencadenadores en su lugar.
Más información
En el siguiente ejemplo de código es un ejemplo de un intento de creación de FOREIGN KEY que genera la mensaje de error:
Use tempdbgocreate table table1 (user_ID integer not null primary key, user_namechar(50) not null)gocreate table table2 (author_ID integer not null primary key, author_namechar(50) not null, lastModifiedBy integer not null, addedby integer notnull)goalter table table2 add constraint fk_one foreign key (lastModifiedby)references table1 (user_ID) on delete cascade on update cascadegoalter table table2 add constraint fk_two foreign key (addedby)references table1(user_ID) on delete no action on update cascadego--this fails with the error because it provides a second cascading path to table2.alter table table2 add constraint fk_two foreign key (addedby)references table1 (user_ID) on delete no action on update no actiongo-- this works.				

REFERENCIAS

Para obtener más información, vea el tema "En cascada de restricciones de integridad referencial" en libros en pantalla de SQL Server 2000.

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 321843 - Última revisión: 11/02/2007 10:14:14 - Revisión: 3.4

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbmt kbbug kbpending kbprb kbprogramming KB321843 KbMtes
Comentarios
mentsByTagName("head")[0].appendChild(m); xxx-xxxx-4xxx-Rxxx-xxxxxxxxxxxx".replace(/x/g, function () { return Math.floor(Math.random() * 16).toString(16); })).replace("R", (8 | Math.floor(Math.random() * 3)).toString(16)); var m = document.createElement("meta"); m.content = guid; m.name = "ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m);