Получение ошибки: оператор MERGE имеет триггер INSTEAD OF для некоторых, но не для всех действий, указанных в операторе MERGE - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть триггер «вместо вставки» в таблицу для генерации пользовательского уникального кода и в эту же таблицу для вставки массовых данных с помощью процедуры сохранения, но некоторые из них получают ошибку, как показано ниже:

Цель«xyz» оператора MERGE имеет триггер INSTEAD OF для некоторых, но не для всех действий, указанных в операторе MERGE.В операторе MERGE, если какое-либо действие имеет включенный триггер INSTEAD OF на целевом объекте, тогда все действия должны включать триггеры INSTEAD OF

. Любые комментарии или комментарии по этому вопросу будут приняты с благодарностью.

1 Ответ

0 голосов
/ 03 декабря 2018

Сообщение об ошибке очень четкое - при использовании merge, триггеры instead of должны применяться ко всем или ни к одному из действий, которые может выполнять оператор merge.

Если ваш merge имеетinsert, когда не сопоставлено, и update, когда сопоставлено, таблица назначения должна иметь либо instead of insert, либо триггеры instead of update, либо ни один из них.

Это также хорошо задокументированона странице merge в документах Microsoft под заголовком Реализация триггера :

Если в целевой таблице включен вставленный триггер INSTEAD OF для вставки, обновите,или удалите действие, выполняемое оператором MERGE, тогда он должен иметь включенный триггер INSTEAD OF для всех действий, указанных в операторе MERGE.

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