Рассмотрим:
CREATE PROCEDURE LowerCityDiscounts @city VARCHAR(45), @decrease DECIMAL(10,2) AS
BEGIN
BEGIN TRANSACTION;
UPDATE Customers SET discnt = discnt - @decrease
WHERE Customers.city = @city;
UPDATE Customers SET discnt = 0
WHERE Customers.city = @city AND discnt < 0
COMMIT;
END;
Я пытался вызвать эту процедуру с помощью:
CALL LowerCityDiscounts 'Cleveland', 5;
но это только производит
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'Cleveland'.
Тем не менее, если я изменю вещи на
EXEC LowerCityDiscounts 'Cleveland', 5;
все отлично работает. И это несмотря на то, что документация заявляет, что call
- правильный синтаксис.
Почему EXEC
работает, когда CALL
не работает?