Ich versuche, eine gespeicherte Prozedur zu erstellen. Die Prozedur sollte zwei Parameter, die Rechnungs-ID und den Betrag der Zahlung. Aktualisieren Sie diesen Datensatz, um diese Zahlung der Gesamtsumme hinzuzufügen, und notieren Sie das Zahlungsdatum wie heute.Dies ist der Code, den ich diesen Code verwende.Wenn andere Fehler angezeigt werden, weisen Sie sie bitte darauf hin.Warum gibt meine ELSE-Anweisung mir einen FEHLER?
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
Es gibt mir diese Fehlermeldung:
Msg 156, Level 15, State 1, Procedure spRecordPayment, Line 21 Incorrect syntax near the keyword 'ELSE'.
Wollen Sie uns raten, was t Die Fehlermeldung ist, dass Sie bekommen? Meine Kristallkugel ist kaputt ... –
Hey sorry, ich habe bemerkt, dass ich das weggelassen habe @ rory.ap –