Как я могу создать внешние ключи для распределительной таблицы - PullRequest
2 голосов
/ 06 октября 2010

У меня есть Object1 и таблица соединений и Object2. Object2 - это таблица, которая имеет много соединительных таблиц, но может иметь только одну соединительную таблицу, ссылающуюся на нее. Когда таблица Object1 удалена, тогда таблица соединений и Object2 должны быть удалены. Как я могу сделать внешние ключи в этой ситуации? Но когда Object2 удален, то должна быть удалена только таблица соединений, а не Object1. Я использую SQL Server 2008.

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Вы можете

  • применить УДАЛИТЬ КАСКАДЫ к своему внешнему ключу из таблицы junction в Object2.
  • добавить триггер до Object1, проверьте удаление и удалите соответствующие записи в вашей таблице junction и Object2.
1 голос
/ 06 октября 2010

Я предлагаю:

  1. Когда строка в Таблице 1 удалена, тогда таблица соединений (JT) и строка в Таблице 2 должны быть удалены.Ответ: Установите FK в JT со ссылкой на Таблицу 1 с ON DELETE CASCADE, установленной на on.Установите FK в Таблице 2, ссылаясь на JT с ON DELETE CASCADE, установленной на on.

  2. Когда строка в Таблице 2 удалена, строка в JT должна быть удалена.Ответ: Возможно, вам придется настроить триггер для этого.

...