看起来,至少通过管理工作室表达,不可能设置一个外键约束,参考同一张表来更新或删除。
我有一张表,希望如果删除一行,则级联更新为null。
这可行吗?
谢谢!
看起来,至少通过管理工作室表达,不可能设置一个外键约束,参考同一张表来更新或删除。
我有一张表,希望如果删除一行,则级联更新为null。
这可行吗?
谢谢!
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