Pregunta

¿Hay una forma de evitar esto en SQL Server 2005?

(Me molesta, y cada vez que me encuentro con que tengo a una correa de cuero. Pero esta es la primera vez que he tenido que tratar y estado de desbordamiento de pila. Por favor, ahorran la poca cordura que me movil.Contamos!)

DimensionTable:
Identificación del INT IDENTIDAD (1,1)

tabla de hechos:
source_id INT NOT NULL, España target_id INT NOT NULL

He creado una clave externa de "Fact.source_id" a "Dimension.id" y configurarlo con cascada de eliminar y actualización en cascada.

Cuando traté de hacer lo mismo con "Fact.target_id" me dio un error diciendo "oh no, no, no", ya que hay múltiples caminos para la cascada de seguir.

No hay otras claves externas que participan aquí, sólo los dos que desea crear. Puedo crear la segunda clave externa Sin la cascada, pero que parece bastante caca a mí. Es un conjunto de tablas que van a ser mantenidos por la mano (muy rara vez van a ser tocados, por lo que el cliente no va a pagar por una interfaz gráfica de usuario para hacer esto.) Un tipo de cascada eliminar / actualizar sería extremadamente útil, pero sólo si es en ambos campos. (Soy una campana extractora de consistencia)

**** **** gemido

¿Fue útil?

Solución

Sí, utilizar un desencadenador INSTEAD OF. Se va a interceptar el comando DELETE y se puede dirigir la lógica consecuencia.

Otros consejos

Puede eliminar sólo en cascada de una relación. Recomendamos que establezca esto en disparadores intead.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top