テーブル値パラメーターの ODBC サポートにより、クライアント アプリケーションは、1 回の呼び出しで複数の行をサーバーに送信することで、パラメーター化されたデータをより効率的にサーバーに送信できます。
サーバー上のテーブル値パラメーターの詳細については、「 Table-Valued パラメーターの使用 (データベース エンジン)」を参照してください。
ODBC では、テーブル値パラメーターをサーバーに送信する方法は 2 つあります。
すべてのテーブル値パラメーター データは、SQLExecDirect または SQLExecute が呼び出された時点でメモリ内に格納できます。 テーブル値に複数の行がある場合、このデータは配列に格納されます。
アプリケーションは、SQLExecDirect または SQLExecute が呼び出されたときに、テーブル値パラメーターの実行時データを指定できます。 この場合、テーブル値のデータ行をバッチで提供することも、メモリ要件を減らすために一度に 1 行ずつ指定することもできます。
最初のオプションでは、ストアド プロシージャにより多くのビジネス ロジックをカプセル化できます。 たとえば、1 つのストアド プロシージャは、注文項目がテーブル値パラメーターとして渡されるときに、注文エントリ トランザクション全体をカプセル化できます。 このオプションは、サーバーへの 1 回のラウンド トリップのみが必要であるため、非常に効率的です。 または、異なるプロシージャを使用して注文ヘッダーと注文項目を個別に処理することもできます。この場合、クライアントとサーバーの間でより多くのコードとより複雑なコントラクトが必要になります。
2 つ目の方法では、非常に大量のデータを含む一括操作の効率的なメカニズムが提供されます。 これにより、アプリケーションは、データ行をすべて最初にメモリにバッファーすることなく、サーバーにストリーム配信できます。
テーブル変数を作成するときに、制約と主キーを作成できます。 制約は、テーブル内のデータが特定の要件を満たしていることを確認するのに適した方法です。
このセクションにて
ODBC Table-Valued パラメーターの使用
テーブル値パラメーターと ODBC の主なユーザー シナリオについて説明します。
Table-Valued パラメーターの ODBC SQL 型
SQL_SS_TABLE型について説明します。 これは、テーブル値パラメーターをサポートする新しい ODBC SQL 型です。
パラメーター記述子フィールドのTable-Valued
テーブル値パラメーターをサポートする記述子フィールドについて説明します。
Table-Valued パラメーター構成列の記述子フィールド
テーブル値パラメーターの意味を持つ記述子フィールドについて説明します。
パラメーター診断レコード フィールドのTable-Valued
テーブル値パラメーターをサポートするために診断レコードに追加された 2 つの診断フィールドについて説明します。
Table-Valued パラメーターに影響するステートメント属性
テーブル値パラメーター列をアドレス指定できるようにする新しい記述子ヘッダー フィールドについて説明します。
Table-Valued パラメーターと列値のバインドとデータ転送
パラメーター バインドと、テーブル値パラメーターをサーバーに渡す方法について説明します。
準備されたステートメントのパラメーター メタデータのTable-Valued
準備されたプロシージャ呼び出しのメタデータをアプリケーションが取得する方法について説明します。
その他の Table-Valued パラメーター メタデータ
SQLProcedureColumns、SQLTables、SQLColumns を使用して、テーブル値パラメーターのメタデータを取得する方法について説明します。
Table-Valued パラメーター データ変換とその他のエラーと警告
テーブル値パラメーター列の値に対するエラーを処理する方法について説明します。
バージョン間の互換性
SQL Server 2008 より前のバージョンのクライアントまたはサーバーでテーブル値パラメーターが使用される場合に発生する可能性がある競合について説明します。
ODBC Table-Valued パラメーター API の概要
テーブル値パラメーターをサポートする ODBC 関数を一覧表示します。
ODBC Table-Valued パラメーターのプログラミング例
一般的なタスクを実行する方法について説明します。
こちらもご覧ください
SQL Server Native Client (ODBC)
Table-Valued パラメーター (SQL Server Native Client)