Я пишу запрос в SQL, который передает данные из базы данных Acces в новую базу данных управления сервером SQL. Эта передача является единовременной, поэтому мне не нужно беспокоиться о том, что код является супер обобщенным c.
Я пытаюсь вставить данные из нескольких таблиц (включая таблицы из базы данных Acces), но получаю сообщение об ошибке дубликатов в составном первичном ключе.
Моя проблема в том, что я не могу понять, почему мое использование отличных не предотвращает эти дубликаты.
Таблица, в которую я хочу вставить, построена так:
Код, который я пытаюсь выполнить, написан следующим образом:
-- Insert into ComponentSupplier for [Supplier 1]
insert into CDB2020.dbo.ComponentSupplier
(
Supplier_ID,
BK_ID,
Part_ID,
Datasheet,
LF,
Preferred
)
select distinct s.Supplier_ID, c.BK_ID, a.[Supplier 1 order no], a.[PDF Data 1 sheet link], a.[Supplier 1 LF], '1'
from AccessDataMigration_1.dbo.[B-K Data] as a
inner join CDB2020.dbo.Components as c on c.BK_ID = a.[B-K no]
inner join CDB2020.dbo.Suppliers as s on s.Name = a.[Supplier 1]
-- Insert into ComponentSupplier for [Supplier 2]
insert into CDB2020.dbo.ComponentSupplier
(
Supplier_ID,
BK_ID,
Part_ID,
Datasheet,
LF,
Preferred
)
select distinct s.Supplier_ID, c.BK_ID, a.[Supplier 2 order no], a.[PDF Data 2 sheet link], a.[Supplier 2 LF], '0'
from AccessDataMigration_1.dbo.[B-K Data] as a
inner join CDB2020.dbo.Components as c on c.BK_ID = a.[B-K no]
inner join CDB2020.dbo.Suppliers as s on s.Name = a.[Supplier 2]
-- Insert into ComponentSupplier for [Supplier 3]
insert into CDB2020.dbo.ComponentSupplier
(
Supplier_ID,
BK_ID,
Part_ID,
Datasheet,
LF,
Preferred
)
select distinct s.Supplier_ID, c.BK_ID, a.[Supplier 3 order no], a.[PDF Data 3 sheet link], a.[Supplier 3 LF], '0'
from AccessDataMigration_1.dbo.[B-K Data] as a
inner join CDB2020.dbo.Components as c on c.BK_ID = a.[B-K no]
inner join CDB2020.dbo.Suppliers as s on s.Name = a.[Supplier 3]
-- Insert into ComponentSupplier for [Supplier 4]
insert into CDB2020.dbo.ComponentSupplier
(
Supplier_ID,
BK_ID,
Part_ID,
Datasheet,
LF,
Preferred
)
select distinct s.Supplier_ID, c.BK_ID, a.[Supplier 4 order no], a.[PDF Data 4 sheet link], a.[Supplier 4 LF], '0'
from AccessDataMigration_1.dbo.[B-K Data] as a
inner join CDB2020.dbo.Components as c on c.BK_ID = a.[B-K no]
inner join CDB2020.dbo.Suppliers as s on s.Name = a.[Supplier 4]
-- Insert into ComponentSupplier for [Supplier 5]
insert into CDB2020.dbo.ComponentSupplier
(
Supplier_ID,
BK_ID,
Part_ID,
Datasheet,
LF,
Preferred
)
select distinct s.Supplier_ID, c.BK_ID, a.[Supplier 5 order no], a.[PDF Data 5 sheet link], a.[Supplier 5 LF], '0'
from AccessDataMigration_1.dbo.[B-K Data] as a
inner join CDB2020.dbo.Components as c on c.BK_ID = a.[B-K no]
inner join CDB2020.dbo.Suppliers as s on s.Name = a.[Supplier 5]
-- Insert into ComponentSupplier for [Supplier 6]
insert into CDB2020.dbo.ComponentSupplier
(
Supplier_ID,
BK_ID,
Part_ID,
Datasheet,
LF,
Preferred
)
select distinct s.Supplier_ID, c.BK_ID, a.[Supplier 6 order no], a.[PDF Data 6 sheet link], a.[Supplier 6 LF], '0'
from AccessDataMigration_1.dbo.[B-K Data] as a
inner join CDB2020.dbo.Components as c on c.BK_ID = a.[B-K no]
inner join CDB2020.dbo.Suppliers as s on s.Name = a.[Supplier 6]