考虑:
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
是正确的语法。
为什么CALL
不起作用,而EXEC
可以?
CALL
是ODBC结构。你正在使用ODBC吗? - Kieren Johnstone