テーブルParentTable
( id, Name, town
) とその子テーブルhuman
( mother, father
) があり、両方の列に親テーブルへのマッピングが含まれています。
親テーブルには( ) でtown
示される外部キー参照を含む列があり、その町は外部キー参照で追加されます。Town
townid, townname
問題は、人間のテーブルにカスケード制約を与える必要があることですが、SQL Server では、同じ親テーブルの複数の列にカスケードを与えることができません。だから私はこのようなトリガーを作成しました、
create trigger DEL_Parent
ON Parent
instead of delete as
set nocount on
delete from human
where mother IN (select id from deleted)
or father IN (select id from deleted)
delete from Parent where id in(select id from deleted).
しかし、トリガーを実行しようとすると、システムは次のエラーを表示します
削除の代わりに、または更新の代わりにトリガー DEL_Parent を親テーブルに作成することはできません。これは、テーブルにカスケード削除または更新を伴う外部キーがあるためです。
どうすれば問題を解決できますか? 前もって感謝します。