T-SQL中的CALL和EXEC有什么区别?
发布时间:2020-12-12 16:52:56 所属栏目:MsSql教程 来源:网络整理
导读:考虑: CREATE PROCEDURE LowerCityDiscounts @city VARCHAR(45),@decrease DECIMAL(10,2) ASBEGIN BEGIN TRANSACTION; UPDATE Customers SET discnt = discnt - @decrease WHERE Customers.city = @city; UPDATE Customers SET discnt = 0 WHERE Customers.c
考虑:
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没有工作? 解决方法Yup .. CALL是一个可从ODBC驱动程序使用的构造/语法,如您的文档所示.T-SQL文档中没有参考CALL,只有EXEC. 它不工作,因为它不是T-SQL. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |