【发布时间】:2015-07-21 22:42:30
【问题描述】:
我有表 A、B、C。A 对 B 有一个可以为空的 FK,称为 BId,B 对 C 有一个 FK 级联删除。
删除 C 后,我需要将 A 上的 BId 设置为 NULL。因此,当 C 上的 DELETE 级联到 B 时,我希望执行以下触发器:
CREATE TRIGGER AFTER_DELETE_B
ON B
FOR DELETE
AS
BEGIN
DECLARE @bId INT
SELECT @bId = Id FROM DELETED
UPDATE A
SET BId = NULL
WHERE BId = @bId
END
但是,这似乎有时会执行,而不是其他时候。不知道为什么。
【问题讨论】:
标签: sql sql-server triggers cascading-deletes