【发布时间】:2011-12-07 10:26:16
【问题描述】:
我正在删除多对多关系的一个站点上的表中的一行。我还想删除该关系另一端的所有相关行。
例如,假设我有以下表格,我想从Cars 中删除一行。我还想删除 Drivers 中的所有相关行,当然还有 CarDrivers 中不再需要的任何行。
Table Cars:
CarID int
CarName nvarchar(100)
Table Drivers:
DriverID int
DriverName nvarchar(100)
Table CarDrivers:
CarID int
Driver int
我知道如何在SELECT 查询中加入上述表格。但我不知道如何删除关系中的数据。
注意:关系的双方都实现了级联删除。因此,例如,从Cars 中删除一行将删除CarDrivers 中的所有相关行。但显然这不会传播到Drivers 表。
【问题讨论】:
-
@OMG Ponies:不同意,这不是链式删除,因为 CarDrivers 到 Drivers 将是删除父级的子级。父母可能有其他孩子。请看我的回答
-
-1 用于错误示例的误导性和不完整问题
标签: sql sql-server sql-server-2008