Ошибка обновления оператора
У меня есть стол [dbo].[ProductComponentRelationship]
с 4 полями
[ProductComponentRelationshipID] PK, INt, Not Null
[ProductItemID] FK, Int Not Null
[ComponentItemID] FK, Int, Not Null
[SequenceNumber] int null
Эта таблица содержит кучу ценностей. Мне нужно обновить 4000 записей в таблице выше. Поэтому я заполнил отдельную таблицу productItemID и новым значением ComponentitemID. Я попытался запустить оператор SQL ниже, и это не удалось:
update ProductComponentRelationship set ComponentItemID =
(select compid from cst_pricefix where
ProductComponentRelationship.ProductItemID = cst_pricefix.prditem and
ProductComponentRelationship.ProductComponentRelationshipID = ProductComponentRelationship.ProductComponentRelationshipID )
Error Message:
Msg 515, Level 16, State 2, Line 1
Cannot insert the value NULL into column 'ComponentItemID', table 'SDSDB.dbo.ProductComponentRelationship'; column does not allow nulls. UPDATE fails.
1 ответ
Если это SQL Server, как это выглядит из dbo
Вы можете обновить через объединение так:
update
pcr
set
ComponentItemID = f.compid
from
ProductCompnentRelationship pcr
inner join
cst_pricefix f
on pcr.ProductItemID = f.prditem
Я не уверен что ProductComponentRelationship.ProductComponentRelationshipID = ProductComponentRelationship.ProductComponentRelationshipID
было в вашем исходном запросе, так что, возможно, чего-то не хватает в моем.