次のような自動参照関係を持つテーブルがあります。
TableA(IDTableA, IDTableARoot,...)
そして、削除する削除トリガーの代わりにこれを持っています:
Delete from TableA where IDTableARoot IN(select deleted.IDTableA from deleted)
Delete from TableA where IDTableA IN(select deleted.IDTableA from deleted)
私はこの2行があると思います:
行 1: IDTableA: 1 IDTableARoot: 1
行 2: IDTableA: 2 IDTableARoot: 1
行1を削除しようとすると:
delete from TableA where IDTableA = 1;
ID = 1 の行のみが削除されますが、ID = 2 の行は削除されませんが、トリガーの最初のステートメントで削除する必要があるため、IDTableARoot = IDTableA の行を削除する必要があると言います。削除する行の ID です。
では、自己関係に属するカスケード行を削除するにはどうすればよいでしょうか?
どうもありがとう。