В моей базе данных три таблицы: события, задания и CollectableEntities.
События имеют обнуляемый FK, указывающий на PK Джобса.
События и Задания имеют ненулевые FK (которые также являются PK этих таблиц), указывающие на PK CollectableEntities. Эти отношения FK установлены каскадно при обновлении и удалении. Обычно, когда вы удаляете CollectableEntity, я хочу, чтобы также были удалены связанные событие и / или задание.
Я сейчас пытаюсь изменить отношение «События к рабочим местам FK», чтобы установить нулевое значение при обновлении или удалении, но я получаю следующую ошибку:
Error SQL01268: .Net SqlClient Data Provider: Msg 1785, Level 16, State 0, Line 1 Introducing FOREIGN KEY constraint 'FK_Events_Jobs' on table 'Events' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Где цикл? Как я могу избежать этой проблемы, учитывая, что приведенное выше описание - единственный эффект, который я хочу. (Я готов внести изменения, чтобы избежать других непредвиденных побочных эффектов.)