Обновите две таблицы на связанном SQL Server из триггера таблицы - PullRequest
0 голосов
/ 20 декабря 2018

Я хочу обновить две таблицы из триггера AFTER INSERT со следующими условиями:

  1. Триггер AFTER INSERT может вернуть более одной строки
  2. Таблицы для обновления расположены на связанном сервере
  3. Таблицы для обновления связаны уникальным идентификатором

Я попробовал два разных подхода и обнаружил следующие проблемы:

  1. Я использовал INSERT INTO OUTPUT INTO SELECT для обновления таблицына удаленном сервере прямо в триггере.Я использовал OUTPUT для захвата uniqueidentifier с целью создания строки во второй таблице.Однако это невозможно из-за следующей ошибки:

"Удаленная таблица не может использоваться в качестве цели DML в операторе, который включает в себя предложение OUTPUT или вложенный оператор DML."

Я создал SP с TVP на связанном сервере и попытался вызвать его из триггера, но это также представляется невозможным из-за следующей ошибки:

Табличные значения параметровне допускается при удаленных вызовах между серверами.

Оба подхода работают при локальном обновлении таблиц, но не работают при попытке обновить таблицы на связанном сервере.

Предпочтительным решением будет вызов хранимой процедуры, однако в этом случае мне придется использовать курсор для перебора вставленных строк и вызова хранимой процедуры для каждой строки.Это единственное решение?

...