【问题标题】:How to delete related rows in a many to many relationship (SQL Server 2008 + Entity Framework 4)如何删除多对多关系中的相关行(SQL Server 2008 + Entity Framework 4)
【发布时间】:2011-12-21 21:15:16
【问题描述】:

例如,假设我有这 3 个表:

Table Customers:
CustomerID

Table Addresses:
AddressId

Table Customers_Addresses
CustomerID
AddressID

在 SQL Server Management Studio 上,对于两个 FK,我将“删除规则”和“更新规则”设置为“级联”。

因此,当我删除客户时,“Customers_Addresses”中所有引用 CustomerID 的行都会被删除。 现在,如果我希望 SQL Server 2008 也删除“地址”表中与我刚刚删除的客户相关的所有行,我该怎么办?

我读到我可以在我的客户对象中加载所有相关的“地址”,并为所有地址实例调用“删除对象”。我对这个解决方案不满意,如果存在的话,我更喜欢 SQL Server 2008 上的解决方案。

谢谢!

【问题讨论】:

    标签: sql-server-2008 entity-framework-4


    【解决方案1】:

    table Customers_Addresses 中输入on delete trigger,这将delete 来自table Addresses 的信息。

    Here 是一个完整的例子!

    【讨论】:

    • 非常感谢,它有效!这是我使用的触发器:USE [Test] GO /****** 对象:触发器 [dbo].[CustomersHasAddresses] 脚本日期:12/21/2011 15:11:25 ******/SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ========================================== === -- 作者: -- 创建日期: -- 描述: -- ============== ============================== 创建触发器 [dbo].[CustomersHasAddresses] ON [dbo].[Customers_Addresses] FOR DELETE AS BEGIN DELETE 地址 WHERE AddressID IN (SELECT AddressID FROM deleted) END
    猜你喜欢
    • 2013-01-12
    • 2016-01-17
    • 2017-06-02
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    相关资源
    最近更新 更多