Ho 3 tabelle.Elimina da 2 tabelle utilizzando INNER JOIN
- InvoiceOriginal
- fattura
- InvoiceHistory
tabella delle fatture ha un vincolo di chiave esterna. Ogni voce nella tabella delle fatture ha una voce corrispondente in Invoiceoriginal.
La tabella di fattura originale memorizza i valori originali della fattura e la tabella delle fatture memorizza i valori che sono stati modificati dall'utente. questo è fatto per ottenere diferrences al momento della presentazione.
SQL che sto usando è
DELETE i
FROM invoice i
INNER JOIN InvoiceHistory aih
ON i.ClientId = aih.HistoryClientNumber
AND i.invoiceNumber = HistoryInvoiceNumber
tuttavia la cancellazione non è possibile a causa del vincolo di chiave esterna.
Il tavolo è come sotto:
Invoice InvoiceOriginal InvoiceHistory
Id FK_InvoiceId ClientId
ClientId ClientId InvoiceNumber
InvoiceNumber
ho bisogno di eliminare la voce nella fattura e InvoiceOriginal una volta che c'è una voce per quel numero di fattura nel InvoiceHistory per lo stesso clientId.
se necessario l'eliminazione in una singola query utilizza il ON DELETE CASCADE nella schema della tabella. consulta http://stackoverflow.com/questions/6260688/how-do-i-use-cascade-delete-with-sql-server –