SQL Server: 自引用表是否可以级联更新?

4

看起来,至少通过管理工作室表达,不可能设置一个外键约束,参考同一张表来更新或删除。

我有一张表,希望如果删除一行,则级联更新为null。

这可行吗?

谢谢!

1个回答

2
你需要使用INSTEAD OF DELETE触发器来处理这种情况。
类似这样的代码:
CREATE TRIGGER tr_IOD_YourTable ON YourTable
INSTEAD OF DELETE
AS
BEGIN
    SET NOCOUNT ON

    UPDATE yt
        SET ChildForeignKey = NULL
        FROM deleted d
            INNER JOIN YourTable yt
                ON d.PrimaryKeyColumn = yt.ChildForeignKey

    DELETE FROM yt
        FROM deleted d
            INNER JOIN YourTable yt
                ON d.PrimaryKeyColumn = yt.PrimaryKeyColumn
END

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接