ストアドプロシージャを作成しようとしています。プロシージャには、請求書IDと支払い金額の2つのパラメータが必要です。そのレコードを更新して、この支払いを合計額に追加し、今日の支払い日を記録します。これは私がこのコードを使用しているコードです。他のエラーが見られる場合は、それらを指摘してください。私のELSE Statmentが私にエラーを与えているのはなぜですか?
USE AP;
IF OBJECT_ID ('spRecordPayment') IS NOT NULL
DROP PROC spRecordPayment;
GO
CREATE PROCEDURE spRecordPayment
@InvoiceID int,
@PaymentAmount money
AS
BEGIN
SELECT InvoiceId,InvoiceTotal
FROM Invocies
WHERE InvoiceId = @InvoiceID
IF @PaymentAmount > InvoiceTotal
DECLARE @CreditTotal MONEY;
SET @CreditTotal = @PaymentAmount - InvoiceTotal;
UPDATE Invoices
SET CreditTotal = @CreditTotal
WHERE InvoiceID = @InvoiceID;
UPDATE Invoices
SET PaymentDate = GETDATE()
ELSE --This is Line 21
DECLARE @CreditTotal2 MONEY;
SET @CreditTotal2 = InvoiceTotal - @PaymentAmount;
UPDATE Invoices
SET CreditTotal = @CreditTotal2
WHERE InvoiceID = @InvoiceID;
UPDATE Invoices
SET PaymentDate = GETDATE()
END
それは私にこのエラーを与える:
Msg 156, Level 15, State 1, Procedure spRecordPayment, Line 21 Incorrect syntax near the keyword 'ELSE'.
あなたは私たちに何を推測させるでしょうか?彼のエラーメッセージはあなたが得ていることですか?私のクリスタルボールが壊れています... –
ごめんなさい、残念です。@ rory.ap –