运行存储过程 - 调用存储过程
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)
SQL Server ODBC 驱动程序支持将存储过程作为远程存储过程执行。 通过将存储过程作为远程存储过程执行,可使驱动程序和服务器能够优化存储过程的执行性能。
当 SQL 语句使用 ODBC CALL 转义子句调用存储过程时,SQL Server 驱动程序使用远程存储过程调用 (RPC) 机制将过程发送到 SQL Server。 RPC 请求在 SQL Server 中跳过大多数语句分析和参数处理,因此,其速度快于使用 Transact-SQL EXECUTE 语句。
有关演示此功能的示例应用程序,请参阅进程返回代码和输出参数 (ODBC)。
将过程作为 RPC 运行
构造使用 ODBC CALL 转义序列的 SQL 语句。 该语句对每个输入、输入/输出和输出参数以及过程返回值(如果有)使用参数标记:
{? = CALL procname (?,?)}
为每个输入、输入/输出和输出参数以及过程返回值(如果有)调用 SQLBindParameter 。
使用 SQLExecDirect 执行语句。
注意
如果应用程序使用 Transact-SQL EXECUTE 语法提交过程(这与 ODBC CALL 转义序列相反),SQL Server ODBC 驱动程序会将过程调用作为 SQL 语句(而非 RPC)传递给 SQL Server。 此外,如果未使用 Transact-SQL EXECUTE 语句,则不会返回输出参数。