我有三個表如下,沒有級聯關係(我不希望這樣,因爲數據庫主要由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
)
我想要做的是刪除Ticket上給定條件的發票,票據和相關的InvoiceTicket行。但是我必須在應用程序外部執行此操作,因此爲什麼要構建SQL查詢來執行此操作。
我已經刪除了發票和票據的所有依賴項,沒有問題。由於InvoiceTicket引用了Invoice和Ticket,因此我必須先刪除InvoiceTicket行。但是,如果我這樣做,那麼我與發票表的鏈接就會中斷(我仍然可以刪除感興趣的票據,但不再是發票)。
什麼是使用SQL執行此操作的公認方法?
我已經解決了這個問題,通過使用臨時表並使用InvoiceTicket表中的感興趣的行填充它,但是其他人正在做什麼來解決這類問題?我想你也可以用存儲過程來做到這一點,但我不太熟悉這些。是否有通過SQL查詢執行此操作的直接方式?
您是否需要使用ANSI SQL進行工作,或者您是否有特定的版本? – RBarryYoung 2009-09-25 20:17:17
由於我對接受的方法感興趣,所以應該使用ANSI SQL。 – 2009-09-26 17:59:21