次の3つのテーブルがあり、カスケード関係はありません(データベースは主にNHibernateによって管理されているため、これは必要ありません)。
Invoice
(
entity_id int not null,
...
)
Ticket
(
entity_id int not null,
...
)
InvoiceTicket
(
InvoiceId --> Not-null foreign key to Invoice.entity_id
TicketId --> Not-null Foreign key to Ticket.entity_id
)
私がやろうとしているのは、チケットの基準を指定して、請求書、チケット、および関連するInvoiceTicket行を削除することです。しかし、これはアプリケーションの外部で行う必要があるため、SQLクエリを作成してそれを行うのはなぜですか。
請求書とチケットの両方に対するすべての依存関係をすでに削除しました。問題ありません。InvoiceとTicketはInvoiceTicketによって参照されるため、最初にInvoiceTicketの行を削除する必要があります。ただし、これを行うと、請求書テーブルへのリンクが壊れます(関心のあるチケットは削除できますが、請求書は削除できなくなります)。
SQLを使用してこの操作を実行するために受け入れられている方法は何ですか?
一時テーブルを使用してInvoiceTicketテーブルの対象の行を入力することですでに問題を解決しましたが、このタイプの問題を解決するために他の人は何をしていますか?ストアドプロシージャでもこれを実行できると思いますが、私はそれらを作成することに慣れていません。SQLクエリを介してこの操作を直接行う方法はありますか?