का उपयोग कर 2 टेबल से हटाएं मेरे पास 3 टेबल हैं।INNER JOIN
- InvoiceOriginal
- चालान
- InvoiceHistory
चालान तालिका एक विदेशी कुंजी बाधा है। चालान तालिका में प्रत्येक प्रविष्टि इनवोइसोरिजिनल में एक समान प्रविष्टि है।
चालान मूल तालिका तालिका चालान के मूल मूल्यों को संग्रहीत करती है और इनवॉइस तालिका उपयोगकर्ता द्वारा संशोधित मानों को संग्रहीत करती है। यह सबमिशन के समय भिन्न होने के लिए किया जाता है।
एसक्यूएल मैं उपयोग कर रहा हूँ
DELETE i
FROM invoice i
INNER JOIN InvoiceHistory aih
ON i.ClientId = aih.HistoryClientNumber
AND i.invoiceNumber = HistoryInvoiceNumber
हालांकि विलोपन विदेशी कुंजी बाधा की वजह से संभव नहीं है।
Invoice InvoiceOriginal InvoiceHistory
Id FK_InvoiceId ClientId
ClientId ClientId InvoiceNumber
InvoiceNumber
मैं चालान में प्रविष्टि को हटाने की जरूरत है और InvoiceOriginal एक बार वहाँ एक ही clientid के लिए InvoiceHistory में उस चालान संख्या के लिए एक प्रवेश है:
टेबल के नीचे के रूप में है।
करने के लिए अपने विदेशी कुंजी बाधा को संशोधित करता है, तो उपयोग पर तालिका स्कीमा में DELETE CASCADE किसी एक क्वेरी में हटाने की आवश्यकता है। http://stackoverflow.com/questions/6260688/how-do-i-use-cascade-delete-with-sql-server –