Рассмотрим:
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
не работает?