Сравнение данных в SQL Server не сохраняется "ON DELETE SET NULL" Отношение внешнего ключа - PullRequest
0 голосов
/ 18 апреля 2011

У меня такое ощущение, что это проблема «только на моей машине». У меня есть две базы данных 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 или ограничение для экспресс-выпуска?

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Недавно я нашел новый инструмент Optillect Data Compare SQL , который работает лучше, чем другие. Может быть, вам стоит попробовать ..

0 голосов
/ 19 апреля 2011

Если вы отбрасываете FK, чтобы не беспокоиться о целостности данных во время загрузки, как насчет их отключения?Таким образом, определение остается в базе данных.

...