テーブル値パラメーター (ODBC)Table-Valued Parameters (ODBC)

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

ODBC のテーブル値パラメーターのサポートにより、クライアント アプリケーションは、1 回の呼び出しで複数の行をサーバーに送信することで、パラメーター化されたデータをサーバーに効率的に送信できます。ODBC support for table-valued parameters lets a client application send parameterized data to the server more efficiently, by sending multiple rows to the server with one call.

サーバー上のテーブル値パラメーターの詳細についてを参照してくださいUse Table-Valued パラメーター(データベース エンジン)For information about table-valued parameters on the server, see Use Table-Valued Parameters (Database Engine).

ODBC でテーブル値パラメーターをサーバーに送信するには、次の 2 つの方法があります。In ODBC, there are two ways that you can send table-valued parameters to the server:

  • テーブル値パラメーターのすべてのデータをされるか、SQLExecute が呼び出されたときにメモリ内でできます。All the table-valued parameter data can be in memory at the time SQLExecDirect or SQLExecute is called. テーブル値に複数の行がある場合、このデータを配列に格納します。This data is stored in arrays if there are multiple rows in the table-value.

  • されるまたは SQLExecute が呼び出されたときに、アプリケーションでテーブル値パラメーターの実行時データを指定できます。An application can specify data-at-execution for a table-valued parameter when SQLExecDirect or SQLExecute is called. この場合、テーブル値のデータの行をバッチ内で指定するか、必要なメモリ量を減らすために 1 つずつ指定することができます。In this case, rows of data for the table-value can be provided in batches, or one at a time to reduce memory requirements.

1 つ目の方法では、より多くのビジネス ロジックをストアド プロシージャにカプセル化できます。The first option enables stored procedures to encapsulate more business logic. たとえば、発注品目をテーブル値パラメーターとして渡す場合、注文入力のトランザクション全体を 1 つのストアド プロシージャにカプセル化することができます。For example, a single stored procedure could encapsulate a whole order entry transaction when the order items are passed as a table-valued parameter. サーバーとのやり取りが 1 回で済むため、この方法は非常に効率的です。This option is very efficient, because only a single round trip to the server is required. また、異なるプロシージャを使用して、注文ヘッダーと発注品目を個別に処理することもできます。この場合、必要なコードが多くなり、クライアントとサーバー間のコントラクトが複雑になります。Alternatively, you could use different procedures to handle the order header and order items separately, which would require more code and a more complex contract between the client and server.

2 つ目の方法は、膨大な量のデータを使用する一括操作のときに効率の良いメカニズムです。The second method provides an efficient mechanism for bulk operations with very large amounts of data. この方法では、アプリケーションで最初にデータ行をメモリ内のバッファーに格納しなくても、データ行をサーバーにストリーム送信できます。This enables an application to stream rows of data to the server without having to buffer them all in memory first.

テーブル変数を作成するときに、制約と主キーを作成できます。You can create constraints and primary keys when you create the table variable. 制約は、テーブル内のデータが特定の要件を満たしていることを確認するのに優れた方法です。Constraints are a good way to ensure that the data in a table meets specific requirements.

このセクションの内容In This Section

ODBC テーブル値パラメーターの使用Uses of ODBC Table-Valued Parameters
テーブル値パラメーターと ODBC の主なユーザー シナリオについて説明します。Describes the primary user scenarios for table-valued parameters and ODBC.

テーブル値パラメーター用の ODBC SQL 型ODBC SQL Type for Table-Valued Parameters
SQL_SS_TABLE 型について説明します。Describes the SQL_SS_TABLE type. この型は、テーブル値パラメーターをサポートする新しい ODBC SQL 型です。This is a new ODBC SQL type that supports table-valued parameters.

テーブル値パラメーターの記述子フィールドTable-Valued Parameter Descriptor Fields
テーブル値パラメーターをサポートする記述子フィールドについて説明します。Describes descriptor fields that support table-valued parameters.

テーブル値パラメーターを構成する列の記述子フィールドDescriptor Fields for Table-Valued Parameter Constituent Columns
テーブル値パラメーターで意味を持つ記述子フィールドについて説明します。Describes descriptor fields that have meaning for table-valued parameters.

テーブル値パラメーターの診断レコードのフィールドTable-Valued Parameter Diagnostic Record Fields
テーブル値パラメーターをサポートするために診断レコードに追加された 2 つの診断フィールドについて説明します。Describes two diagnostic fields that have been added to diagnostic records to support table-valued parameters.

テーブル値パラメーターに影響を与えるステートメント属性Statement Attributes that Affect Table-Valued Parameters
テーブル値パラメーター列に対処できるようにする記述子の新しいヘッダー フィールドについて説明します。Describes a new descriptor header field that enables table-valued parameters columns to be addressed.

テーブル値パラメーターおよび列の値のバインドとデータ転送Binding and Data Transfer of Table-Valued Parameters and Column Values
パラメーター バインドと、テーブル値パラメーターをサーバーに渡す方法について説明します。Describes parameter binding and how to pass a table-valued parameter to the server.

準備されたステートメント用のテーブル値パラメーターのメタデータTable-Valued Parameter Metadata for Prepared Statements
アプリケーションから、準備されたプロシージャ呼び出しのメタデータを取得する方法について説明します。Describes how an application can obtain metadata for a prepared procedure call.

テーブル値パラメーターの追加メタデータAdditional Table-Valued Parameter Metadata
SQLProcedureColumns、SQLTables では、テーブル値パラメーターのメタデータを取得する方法を使用する方法について説明します。Describes how to use SQLProcedureColumns, SQLTables, and SQLColumns to retrieve metadata for a table-valued parameter.

テーブル値パラメーターのデータ変換およびその他のエラーと警告Table-Valued Parameter Data Conversion and Other Errors and Warnings
テーブル値パラメーターの列値に関するエラーを処理する方法について説明します。Describes how to process errors on table-valued parameter column values.

複数バージョン間の互換性Cross-Version Compatibility
テーブル値パラメーターが、SQL Server 2008SQL Server 2008 より前のバージョンのクライアントまたはサーバーで使用されるときに発生する可能性がある競合について説明します。Describes conflicts that can occur when table-valued parameters are used by a client or server of a version earlier than SQL Server 2008SQL Server 2008.

ODBC テーブル値パラメーター API の概要ODBC Table-Valued Parameter API Summary
テーブル値パラメーターをサポートする、ODBC 関数の一覧を示します。Lists the ODBC functions that support table-valued parameters.

ODBC テーブル値パラメーターのプログラミング例ODBC Table-Valued Parameter Programming Examples
一般的なタスクの実行方法について説明します。Describes how to perform common tasks.

関連項目See Also

SQL Server Native Client (ODBC) SQL Server Native Client (ODBC)
テーブル値パラメーター (SQL Server ネイティブ クライアント)Table-Valued Parameters (SQL Server Native Client)