2012-11-02 69 views
2

我試圖更新我的表(產品)列 - ProductID(FK)和ProductType(FK)。這兩列與MProduct表的列MProductID(PK)和MProductType(PK)有關係。SQL - 使用更新語句的外鍵約束錯誤

我試圖更新

ProductID  ProductType 
9999   11 
9999   12 

但我得到了以下錯誤

The UPDATE statement conflicted with the FOREIGN KEY constraint "FKHCR_MProduct". 
The conflict occurred in database "XXXX", table "dbo.MProduct". 

我MProduct表檢查,它擁有所有的查找有效記錄。我無法改變我的表格結構。

我想這也查詢

Select ProductID,ProductType 
from dbo.Product P 
Left Join dbo.MProduct M on M.ProductID = P.ProductID 
    and M.ProductType = P.ProductType 
where M.ProductType is null 
    and M.ProductID is null 

,並沒有輸出,表示沒有空數據裏面的查找表。

+3

嘗試'那裏M.ProductType爲空或M.ProductID是null'如果你能提供的表模式和正式FK定義返回值 –

+0

? –

+0

@約翰 - 我已經嘗試在哪裏條件.... – 343

回答

3

在所有可能的方案,你要麼試圖插入您的表中的NULL值或不引用表存在的價值。

大多數時候,那是因爲你正試圖在字段中插入的NULL值。

+0

我試着用這個查詢,並沒有空數據從dbo.Product P 左連接dbo.MProduct M於M.ProductID = P.ProductID 和M.ProductType = P.ProductType選擇產品ID,ProductType 其中M. ProductType爲空 和M.ProductID爲空 – 343

+0

我檢查了所有數據,表中沒有NUll值,即使在插入數據中也沒有NUll值。 – 343

+1

然後您試圖插入參考表中不存在的值。 –