0

Delete_CreditPayment次のように呼び出されるストアドプロシージャがあります。

ALTER PROCEDURE [dbo].[Delete_CreditPayment] (@CollectionID nvarchar(50))
AS
BEGIN
    UPDATE Acc_CreditDocuments
    Set Acc_Status = 3010001
    WHERE Acc_DocumentRef = (SELECT Acc_DocumentRef 
    From Acc_CreditDocuments 
    WHERE Acc_DocumentNo = @CollectionID);
END

SELECT ステートメントに請求書Acc_DocumentRefが 1 つしかない場合は機能しますが、値が複数ある場合、Microsoft SQL Server は次のエラー メッセージを表示します。

メッセージ 512、レベル 16、状態 1、行 1
サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。ステートメントは終了されました。

では、上記のストアド プロシージャを編集して複数の値を受け入れるにはどうすればよいでしょうか。どんな助けでも大歓迎です!

4

4 に答える 4