SQL Server - строка, добавленная через триггер родительской таблицы, недоступна в триггере дочерней таблицы - PullRequest
0 голосов
/ 10 января 2012

у меня 3 стола

  1. ParentTable
  2. ChildTable (с колонкой ParentId, ссылающейся на ParentTable)
  3. Recording (с колонкой ParentId, ссылающейся на собственную таблицу)

В родительской таблице есть триггер, который добавляет строку в таблицу Recording.

У дочерней таблицы снова есть триггер, который добавляет строку в Recording table

Теперь я получаю сообщение об ошибке, что строка не найдена в Recording таблице

Оператор INSERT конфликтует с FOREIGN KEY SAME TABLE ограничение

1 Ответ

0 голосов
/ 10 января 2012

Возможно, вы запускаете дубликат ParentID для вставки в таблицу записей.Это будет верно, если для вашего ParentID в таблице «Запись» определен уникальный ключ.

При вставке в родительскую таблицу вы вставляете запись с ParentID в «Запись».Я думаю, что вы вставили дубликат ParentID в триггер ChildTable.

Может быть, вы можете предоставить больше контекста.

Кроме того, вы можете избегать триггеров, если это возможно, что происходит чаще всего.Использование выражений CTE и OUTPUT поможет вам избежать проблем с триггерами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...