在使用SQLSRV擴展從PHP的documentation for calling a SQL Server stored procedure with parameters,它使用了一個奇怪的語法:PHP SQLSRV參數化存儲過程的T-SQL語法
{call SubtractVacationHours(?, ?)}
什麼我希望是:
EXEC SubtractVacationHours ?, ?;
在SQL Server documentation for executing a T-SQL stored procedure它只允許EXEC | EXECUTE作爲命令字。所以我會認爲查詢會導致錯誤。
您肯定可以使用具有指定參數的EXEC SubtractVacationHours SQL(即用問號標記替換值)調用sqlsrv_query
。
經過對參數化查詢的進一步研究之後,似乎'CALL'來自call it through an ODBC provider。
那麼第二個EXEC語法實際上會起作用嗎?或者通過sqlsrv驅動程序參數化存儲過程調用必須使用ODBC CALL語法?