執行預存程序 - 呼叫預存程序

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server ODBC 驅動程式支援以遠端預存程式的形式執行預存程式。 以遠端預存程式的形式執行預存程式可讓驅動程式和伺服器將執行程式的效能優化。

當 SQL 語句使用 ODBC CALL 逸出子句呼叫預存程式時,SQL Server 驅動程式會使用遠端預存過程調用 (RPC) 機制,將程式傳送至 SQL Server。 RPC 要求會略過 SQL Server 中大部分的語句剖析和參數處理,而且比使用 Transact-SQL EXECUTE 語句更快。

如需示範這項功能的範例應用程式,請參閱 處理傳回碼和輸出參數 (ODBC)

以 RPC 身分執行程式

  1. 建構使用 ODBC CALL 逸出序列的 SQL 語句。 語句會針對每個輸入、輸入/輸出和輸出參數使用參數標記,以及程式傳回值(如果有的話):

    {? = CALL procname (?,?)}  
    
  2. 針對 每個輸入、輸入/輸出和輸出參數,以及程式傳回值呼叫 SQLBindParameter (如果有的話)。

  3. 使用 SQLExecDirect 執行 語句。

注意

如果應用程式使用 Transact-SQL EXECUTE 語法提交程式(相對於 ODBC CALL 逸出序列),SQL Server ODBC 驅動程式會將過程調用傳遞至 SQL Server 做為 SQL 語句,而不是 RPC。 此外,如果使用 Transact-SQL EXECUTE 語句,則不會傳回輸出參數。

另請參閱

批處理預存程式呼叫
執行預存程序
呼叫預存程式
程序