Я пытаюсь создать хранимую процедуру. Процедура должна принимать два параметра: идентификатор счета и сумму платежа. Обновите эту запись, чтобы добавить этот платеж в общую сумму и запишите дату платежа как сегодня. Это код, который я использую для этого кода. Если все другие ошибки видны, укажите их.Почему мой ELSE-статус дает мне ОШИБКУ?
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 –