SQL противоречит ограничению FOREIGN KEY
Я пытаюсь запустить некоторые скрипты обновления в своей базе данных, и я получаю следующую ошибку:
Оператор ALTER TABLE противоречил ограничениям FOREIGN KEY "FK_UPSELL_DT_AMRNO_AFMKTG_REF". Конфликт произошел в базе данных "ECOMVER", таблице "dbo.AFFILIATE_MKTG_REF", в столбце "AMRNO".
Я запускаю следующий script:
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, и я получил ту же ошибку. Я не уверен, что я должен искать?
Приветствуются любые предложения.
Ответы
Ответ 1
Вероятно, у вас есть записи в таблице [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
Ответ 2
Я думаю, что у вас есть данные, ограниченные внешним ключом, попытайтесь проверить данные в обеих таблицах перед назначением внешнего ключа, есть ли ограничения для обеих таблиц.