Domanda

C'è un modo per aggirare questo in SQL Server 2005?

(mi bug, e ogni volta che incontro io ottenere in uno stroppo. Ma questa è la prima volta che ho avuto a che fare con ed è stato su Stack Overflow. Si prega, salvare quel poco che hai tutti sanità mentale!)

DimensionTable:
id INT IDENTITY (1,1)

FactTable:
source_id INT NOT NULL,
target_id INT NOT NULL

Ho creato una chiave esterna da "Fact.source_id" a "Dimension.id" e configurarlo con eliminazione a catena e l'aggiornamento a cascata.

Quando ho provato a fare lo stesso con "Fact.target_id" ho ottenuto un errore dicendo "oh no, no, no", in quanto vi sono più percorsi per la cascata da seguire.

Non ci sono altre chiavi straniere coinvolte qui, solo due che voglio creare. Posso creare la seconda chiave esterna Senza la cascata, ma che sembra abbastanza poo a me. Si tratta di una serie di tabelle che stanno per essere mantenuto in mano (molto raramente essi saranno toccati, in modo che il cliente non pagherà per una gui per fare questo.) Un tale un'eliminazione a cascata / aggiornamento sarebbe estremamente utile, ma solo se e' su entrambi i campi. (Io sono un pollone per consistenza)

**** **** lamento

È stato utile?

Soluzione

Sì, utilizzare un trigger INSTEAD OF. Sarà intercettare il comando DELETE e si può dirigere la logica conseguenza.

Altri suggerimenti

Si può solo eliminare a cascata da una relazione. Consiglio di impostare questa funzione in trigger intead.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top