У меня есть таблица (TableB), у которой есть отношения внешнего ключа с родительской таблицей (TableA).
Когда я удаляю запись в таблице A, я хочу сохранить ссылочную целостность, удаляя все записи в TableB, которые ссылаются на удаленную запись в TableA.
Обычно я бы УДАЛЯЛ КАСКАД. Однако из-за структуры таблицы и чрезмерных защитных мер против нескольких каскадных путей в SQL Server это невозможно для данной конкретной связи.
Я также не могу использовать триггер INSTEAD OF, поскольку у самого TableA есть отношения внешнего ключа CASCADE.
Я собираюсь изменить отношения между TableA и TableB на ON DELETE SET NULL, а затем создать триггер AFTER для очистки записей NULL в TableB.
Есть ли лучшие способы справиться с этим сценарием?
on delete set null
в тех же обстоятельствах, что иon delete cascade
. - person Neutrino   schedule 20.02.2020