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;
一切正常。儘管如此,the documentation指出call
是正確的語法。
爲什麼EXEC
工作時CALL
不?
鏈接的文檔涉及ODBC驅動程序,即'CALL'是一個ODBC結構。你正在使用ODBC? –
一個是tsql關鍵字,另一個基本不是 – Peter
@KierenJohnstone:嗯,我在應用程序內部使用ODBC,但是我正在測試SQL Server Management Studio中的東西。 –