ストアド プロシージャ - SQL Server Native Client での実行
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
重要
SQL Server Native Client (SNAC と略されることがよくあります) は、SQL Server 2022 (16.x) と SQL Server Management Studio 19 (SSMS) から削除されました。 SQL Server Native Client OLE DB プロバイダー (SQLNCLI または SQLNCLI11) とレガシ Microsoft OLE DB Provider for SQL Server (SQLOLEDB) はどちらも、新しい開発には推奨されません。 今後は、新しい Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server に切り替えてください。
ステートメントの実行時、データ ソースに対して (クライアント アプリケーション内で直接ステートメントを実行または準備せずに) ストアド プロシージャを呼び出すと、次のような利点があります。
パフォーマンスの向上。
ネットワーク オーバーヘッドの軽減。
一貫性の向上
正確性の向上
機能の追加。
SQL Server Native Client OLE DB プロバイダーは、SQL Server ストアド プロシージャがデータを返すために使用する 3 つのメカニズムをサポートしています。
プロシージャ内のすべての SELECT ステートメントで結果セットを生成する。
プロシージャが出力パラメーターによってデータを返すことができる。
プロシージャに整数のリターン コードを含めることができる。
アプリケーションでは、ストアド プロシージャからのこれらすべての出力を処理できる必要があります。
結果の処理中には、さまざまな OLE DB プロバイダーからさまざまなタイミングで出力パラメーターと戻り値が返されます。 SQL Server Native Client OLE DB プロバイダーの場合、コンシューマーがストアド プロシージャによって返された結果セットを取得または取り消すまで、出力パラメーターとリターン コードは指定されません。 これらのリターン コードと出力パラメーターは、サーバーからの最後の TDS パケットで返されます。
プロバイダーでは、DBPROP_OUTPUTPARAMETERAVAILABILITY プロパティを使用して、出力パラメーターと戻り値を返すタイミングを報告します。 このプロパティは、DBPROPSET_DATASOURCEINFO プロパティ セットに含まれています。
SQL Server Native Client OLE DB プロバイダーは、結果セットが処理または解放されるまで戻りコードと出力パラメーターが返されないことを示すために、DBPROP_OUTPUTPARAMETERAVAILABILITY プロパティをDBPROPVAL_OA_ATROWRELEASEに設定します。