Подумайте:
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;
все работает нормально. И это несмотря на то, что документация заявляет, что вызов
является правильным синтаксисом.
Почему EXEC
работает, а CALL
- нет?