ストアド プロシージャ - SQL Server Native Clientでの実行

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 プロバイダーからさまざまなタイミングで出力パラメーターと戻り値が返されます。 OLE DB プロバイダー SQL Server Native Client場合、コンシューマーがストアド プロシージャから返された結果セットを取得または取り消すまで、出力パラメーターとリターン コードは提供されません。 これらのリターン コードと出力パラメーターは、サーバーからの最後の TDS パケットで返されます。

プロバイダーでは、DBPROP_OUTPUTPARAMETERAVAILABILITY プロパティを使用して、出力パラメーターと戻り値を返すタイミングを報告します。 このプロパティは、DBPROPSET_DATASOURCEINFO プロパティ セットに含まれています。

SQL Server Native Client OLE DB プロバイダーは、結果セットが処理または解放されるまで戻りコードと出力パラメーターが返されないことを示すために、DBPROP_OUTPUTPARAMETERAVAILABILITY プロパティを DBPROPVAL_OA_ATROWRELEASE に設定します。

参照

ストアド プロシージャ