SQL конфликтует с ограничением FOREIGN KEY
Я пытаюсь запустить некоторые сценарии обновления для своей базы данных, и я получаю следующую ошибку:
Оператор ALTER TABLE конфликтует с ограничением FOREIGN KEY "FK_UPSELL_DT_AMRNO_AFMKTG_REF". Конфликт произошел в базе данных "ECOMVER", таблица "dbo.AFFILIATE_MKTG_REF", столбец "AMRNO".
Я запускаю следующий скрипт:
ALTER TABLE [dbo].[UPSELL_DATA] WITH CHECK ADD
CONSTRAINT [FK_UPSELL_DT_AMRNO_AFMKTG_REF] FOREIGN KEY
(
[AMRNO]
) REFERENCES [dbo].[AFFILIATE_MKTG_REF] (
[AMRNO]
)
GO
AMRNO - это ПК в таблице AFFILIATE_MKTG_REF.
Кроме того, я попытался создать отношение внешнего ключа, используя опцию изменения таблицы в SQL Management Studio, и получил ту же ошибку. Я не уверен, что я должен искать?
Любые предложения будут ценны.
2 ответа
Возможно, в вашей таблице [dbo].[UPSELL_DATA] есть записи со значениями в столбце [AMRNO], которых нет в таблице [dbo].[AFFILIATE_MKTG_REF], столбец [AMRNO]. Попробуйте запрос, подобный этому, чтобы найти те, у которых нет соответствующих записей:
select *
from [dbo].[UPSELL_DATA] u
left join [dbo].[AFFILIATE_MKTG_REF] m
on u.AMRNO = m.AMRNO
where m.AMRNO is null
Я думаю, что у вас есть данные, ограниченные внешним ключом, попробуйте проверить данные в обеих таблицах перед назначением внешнего ключа, есть ли ограничения для обеих таблиц.