为父子关系定义自定义删除规则

时间:2010-10-06 15:53:55

标签: sql-server sql-server-2008

我正在尝试在父表和子表之间的关系上创建自定义删除规则。我想要做的是,如果孩子的列'IsActive'设置为false,则对子项应用级联删除,如果此列设置为true,则应用'NoAction'规则。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

根据你的评论,你可以在你的桌子上写一个类似这样的触发器:

CREATE TRIGGER tr_ParentTable_Update
    ON ParentTable
    FOR INSERT, UPDATE
AS
BEGIN
    IF UPDATE(IsDeleted) BEGIN
        DELETE FROM ct
            FROM inserted i
                INNER JOIN ChildTable ct
                    ON i.ID = ct.ParentID
                        AND ct.IsActive = 0
            WHERE i.IsDeleted = 1
    END /* IF */
END /* Trigger */