Подтвердить что ты не робот

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, и я получил ту же ошибку. Я не уверен, что я должен искать?

Приветствуются любые предложения.

4b9b3361

Ответ 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

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