Мне кажется, я нашел причину, и, по мнению IMO, это очень плохое дизайнерское решение, сделанное людьми Microsoft.
Я пошел, чтобы создать новый внешний ключ и установить таблицу первичного ключа и таблицу внешнего ключа и их столбцы. Затем я понял, что мне нужно очистить данные в таблице перед созданием внешнего ключа, и щелкнул «Закрыть». Я обнаружил, что это создает ожидающий внешний ключ, как я описал в моем вопросе, FK, состоящий из полей первичного ключа, ссылающихся на себя.
Итак, я могу с полным основанием предположить, что произошло то, что в какой-то момент на этих 5 таблицах я начал создавать FK, подумал, что прервал эту операцию, когда приблизился, и затем сделал другое изменение в таблице, такое как добавив поле или изменив тип данных, а затем, когда я сохранил таблицу, я создал непреднамеренный FK. Могу добавить, что это был FK с параметрами, которые я никогда не задавал.
На мой взгляд, это ошибка.
Редактировать: Я только что обнаружил, что это на самом деле хуже, чем я описал. Даже если вы нажмете кнопку «Отмена» в диалоговом окне создания внешнего ключа, он все равно создаст внешний ссылочный внешний ключ в состоянии ожидания. Это ужасно глупо.
Редактировать 2: Чем больше я расследую, тем хуже становится. Я только что получил его, чтобы сохранить один из этих самоссылающихся FK, закрыв SSMS и нажав «Нет» в диалоговом окне «Сохранить изменения». Я снова открыл SSMS, и самопровозглашенный FK был создан в любом случае. Напомню, что я нажал кнопку «Отмена» в диалоговом окне создания FK и «Нет» в диалоговом окне сохранения изменений, и он создал внешний ключ с параметрами, которые я никогда не задавал.