2014-11-18 5 views
-2

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

alter procedure spfactinsert 
as 
insert into [pp dw].dbo.Dimfact(costprice,Prod_ID,Production_ID,MaterialQuantity,Quantity) 

select [cost price],Products.[Product ID],Production_Detail.[ProdDetail ID], 
[Material Quantity],Production_Detail.Quantity 
from 
[PRODUCTION PLANNING 2].dbo.Production_Detail, 
[PRODUCTION PLANNING 2].dbo.[Materials], 
[PRODUCTION PLANNING 2].dbo.[Recipies], 
[PRODUCTION PLANNING 2].dbo.Products 

where 
Production_Detail.[ProdDetail ID]='1' and 
[Materials].[Material ID]='1' and 
[Recipies].[Recipy ID]='1' 
and 
Products.[Product ID]='13' 

но он показывает мне ошибку

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Dimfact_DimProduction". The conflict occurred in database "pp dw", table "dbo.DimProduction", column 'Production_ID'. 

ERD IS IMAGE ERD

Как это решить?

+0

Давай лучше использовать форматирование. Таким образом, у DimProduction есть Product_ID из 1. Your, где находится Production_Detail. [ProdDetail ID] = '1'. Эти кросс-соединения, на которых нет, кажутся странными. – Paparazzi

ответ

1

Первый столбец в списке вставки - Quantity, но вы выбираете cost price, который является вторым столбцом в списке вставки. Вы вставляете Quantity в Production_ID, вызывая нарушение FK.

Изменить на:

insert into [pp dw].dbo.Dimfact(Quantity,costprice,Prod_ID,MaterialQuantity,Production_ID) 
SELECT 
    Production_Detail.Quantity, 
    [cost price], 
    Production_Detail.[ProdDetail ID], 
    [Material Quantity], 
    Products.[Product ID] 
+0

Я изменил его, но ошибка всегда происходит одинаково – capricongurl

Смежные вопросы