テーブル値パラメータ (ODBC)

ODBC のテーブル値パラメータのサポートにより、クライアント アプリケーションは、1 回の呼び出しで複数の行をサーバーに送信することで、パラメータ化されたデータをサーバーに効率的に送信できます。

サーバーでのテーブル値パラメータの詳細については、「テーブル値パラメータ (データベース エンジン)」を参照してください。

ODBC でテーブル値パラメータをサーバーに送信するには、次の 2 つの方法があります。

  • SQLExecDirect または SQLExecute の呼び出し時、すべてのテーブル値パラメータのデータをメモリ内に保持できます。テーブル値に複数の行がある場合、このデータを配列に格納します。

  • SQLExecDirect または SQLExecute を呼び出すときに、アプリケーションでテーブル値パラメータの実行時データを指定できます。この場合、テーブル値のデータの行をバッチ内で指定するか、必要なメモリ量を減らすために 1 つずつ指定することができます。

1 つ目の方法では、より多くのビジネス ロジックをストアド プロシージャにカプセル化できます。たとえば、発注品目をテーブル値パラメータとして渡す場合、注文入力のトランザクション全体を 1 つのストアド プロシージャにカプセル化することができます。サーバーとのやり取りが 1 回で済むため、この方法は非常に効率的です。また、異なるプロシージャを使用して、注文ヘッダーと発注品目を個別に処理することもできます。この場合、必要なコードが多くなり、クライアントとサーバー間のコントラクトが複雑になります。

2 つ目の方法は、膨大な量のデータを使用する一括操作のときに効率の良いメカニズムです。この方法では、アプリケーションで最初にデータ行をメモリ内のバッファに格納しなくても、データ行をサーバーにストリーム送信できます。

テーブル変数を作成するときに、制約と主キーを作成できます。制約は、テーブル内のデータが特定の要件を満たしていることを確認するのに優れた方法です。

このセクションの内容