0

このストアド プロシージャを使用して SQL テーブルを更新しようとしています。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO

CREATE PROCEDURE [dbo].[UpdatePostingStatusAngel]
     @PostingStatusID tinyint,
     @PostingID int
AS
UPDATE dbo.Posting
SET
    PostingStatusID = @PostingStatusID
WHERE PostingID = @PostingID

そのクエリを実行すると、次のエラーが発生します。The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_Posting_PaymentStatus". The conflict occurred in database "JobsDB2008", table "dbo.PaymentStatus", column 'PaymentStatusID'.

「PaymentStatusID」列を更新していないため、これは本当に奇妙です。なぜその列で競合が発生するのかわかりません。その列も NULL に設定されており、既に値があります。PostingStatusID フィールドのみを更新しようとしています。何が原因でしょうか?前もって感謝します、 ラツィアーレ

4

2 に答える 2

0

列に格納された値は、テーブルPaymentStatusIdに存在してはなりません。PaymentStatus

が有効な ID であり、適切なテーブルに存在するPostingStatusIdことを確認してください。PaymentStatusId

SELECT PaymentStatusId, PostingStatusId 
FROM Posting
WHERE PostingId = @PostingId
于 2013-07-01T10:46:32.353 に答える