3
少なくとも管理スタジオエクスプレスでは、同じテーブルを参照する外部キー制約を設定して、更新または削除を行うことはできません。 行が削除された場合、nullへの更新をカスケードするテーブルがあります。SQL Server:自己参照テーブルのカスケード更新が可能ですか?
これは可能ですか?
おかげで、
少なくとも管理スタジオエクスプレスでは、同じテーブルを参照する外部キー制約を設定して、更新または削除を行うことはできません。 行が削除された場合、nullへの更新をカスケードするテーブルがあります。SQL Server:自己参照テーブルのカスケード更新が可能ですか?
これは可能ですか?
おかげで、
あなたは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