Назад | Перейти на главную страницу

Sql Server 2008 Создать внешний ключ вручную

Я унаследовал старую базу данных, которая была не очень хорошо спроектирована. Это база данных Sql Server 2008, в которой отсутствует довольно много отношений внешнего ключа. Ниже показаны две таблицы, и я пытаюсь вручную создать отношение FK между dbo.app_status.status_id и dbo.app_additional_info.application_id

Я использую SQL Server Management Studio, когда пытаюсь создать отношения, используя запрос ниже

USE myDatabase; 
GO ALTER TABLE dbo.app_additional_info 
ADD CONSTRAINT FK_AddInfo_AppStatus FOREIGN KEY (application_id) 
    REFERENCES dbo.app_status (status_id) 
    ON DELETE CASCADE
    ON UPDATE CASCADE ; 
GO

Однако я получаю эту ошибку, когда запускаю запрос

Оператор ALTER TABLE конфликтует с ограничением FOREIGN KEY «FK_AddInfo_AppStatus». Конфликт произошел в базе данных «myDatabase», таблица «dbo.app_status», столбец «status_id».

Мне интересно, не выполняется ли запрос, потому что каждая таблица уже содержит приблизительно 130 000 записей?

Проблема заключалась в том, что в дочерней таблице были записи, у которых нет соответствующего идентификатора в родительской таблице.