J'ai une table appelée [dbo].[ProductComponentRelationship]
avec 4 champsDéclaration de mise à jour ne réussit pas
[ProductComponentRelationshipID] PK, INt, Not Null
[ProductItemID] FK, Int Not Null
[ComponentItemID] FK, Int, Not Null
[SequenceNumber] int null
Ce tableau renferme un tas de valeurs. J'ai besoin de mettre à jour 4000 enregistrements dans le tableau ci-dessus. Par conséquent j'ai peuplé une table séparée avec un productItemID et la nouvelle valeur ComponentitemID. J'ai essayé d'exécuter l'instruction SQL ci-dessous et il a échoué:
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.
Semble simple. Vous définissez ce champ sur null et il échoue car il ne peut pas être défini sur null. Cette déclaration renvoie-t-elle quelque chose? sélectionnez compid à partir de cst_pricefix où ProductComponentRelationship.ProductItemID = cst_pricefix.prditem et ProductComponentRelationship.ProductComponentRelationshipID = ProductComponentRelationship.ProductComponentRelationshipID – Twelfth