Проблемы
Рассмотрим следующий сценарий.
-
В SQL Server 2014 или 2016 имеется несколько таблиц, для каждой из которых задано ограничение PRIMARY KEY.
-
Вы создаете каскадную цепочку для этих таблиц с помощью ограничения внешнего ключа вместе с ДЕЙСТВИЕМ ON DELETE CASCADE.
-
Для каждой таблицы создается триггер "после удаления".
-
Вы удаляете строку из родительской таблицы. Таким образом, триггеры AFTER DELETE и Chain ON DELETE CASCADE будут включены.
В этом сценарии триггеры могут происходить в неправильном порядке.
Решение
Эта проблема исправлена в перечисленных ниже накопительных обновлениях для SQL Server.
Накопительное обновление 5 для SQL Server 2016 RTM
Накопительное обновление 2 для SQL Server 2016 с пакетом обновления 1 (SP1)
Накопительное обновление 5 для SQL Server 2014 с пакетом обновления 2 (SP2)
Накопительное обновление 11 для SQL Server 2014 с пакетом обновления 1 (SP1)
Все новые накопительные обновления для SQL Server содержат все исправления и исправления для системы безопасности, включенные в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
СтатусКорпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Каскадные ограничения ссылочной целостности
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.