У меня такое ощущение, что это проблема «только на моей машине». У меня есть две базы данных SQL 2008 R2 Express на моем компьютере. Схема для каждого была создана с одинаковыми сценариями. Данные отличаются.
Когда я использую встроенный инструмент сравнения данных EITHER Visual Studio 2010 ИЛИ инструмент SQL Data Compare v7 от Red Gate, я вижу следующее поведение.
- Внешний ключ с
ON DELETE SET NULL
удаляется
- Данные вставлены
- Внешний ключ воссоздается без опции
ON DELETE SET NULL
.
Просмотр сценариев SQL, сгенерированных любым из этих инструментов, ясно показывает проблему. Насколько я могу судить, остальные мои ФК в порядке, многие из которых используют ON DELETE CASCADE
.
Когда я прошу SSMS сгенерировать скрипт для самого FK, он включает в себя спецификатор ON DELETE SET NULL
, так что это не мое воображение.
Как два разных инструмента не смогли восстановить правильный SQL для этого ключа? Существует ли неверная конфигурация SQL Server или ограничение для экспресс-выпуска?