2011-12-21 42 views
1

例如,讓我們說,我有這3個表:如何在衆多刪除相關的行一對多的關係(SQL Server 2008的+實體框架4)

Table Customers: 
CustomerID 

Table Addresses: 
AddressId 

Table Customers_Addresses 
CustomerID 
AddressID 

在SQL Server Management Studio中,爲兩個FK我把「刪除規則」和「更新規則」設置爲「級聯」。

所以,當我刪除一個客戶時,「Customers_Addresses」中引用CustomerID的所有行都被刪除。 現在,如果我希望SQL Server 2008也刪除「地址」表中與剛刪除的客戶相關的所有行,我該怎麼辦?

我讀到我可以在我的Customer對象中加載所有相關的「地址」,併爲所有地址實例調用「DeleteObject」。我對這個解決方案並不滿意,如果它存在,我更喜歡SQL Server 2008上的解決方案。

謝謝!

回答

2

做一個on delete triggertable Customers_Addresses那將deletetable Addresses的信息。

Here就是一個完整的例子!

+0

非常感謝,它的工作原理!這是我使用的觸發器:USE [Test] GO /****** Object:Trigger [dbo]。[CustomersHasAddresses] Script Date:12/21/2011 15:11:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO - =================================== ========== - 作者:\t \t <作者,,名稱> - 創建日期:<創建日期,,> - 說明:\t <說明,,> - = ============================================ CREATE TRIGGER [dbo] [客戶地址] ON [dbo]。AS BEGIN \t DELETE地址WHERE AddressID IN(SELECT AddressID已刪除) END – PierrickM 2011-12-21 14:14:50

+0

@PierrickM沒有問題M8 :) – 2011-12-21 14:24:02

相關問題