メタデータの検出
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
SQL Server 2012 (11.x) ではメタデータ検出機能が強化されているため、OLE DB Driver for SQL Server アプリケーションでは、クエリの実行によって返された列またはパラメーター メタデータがクエリの実行前に指定したメタデータ形式と同じであるか、その形式と互換性があることを確認できます。 クエリの実行後に返されたメタデータにクエリの実行前に指定したメタデータ形式との互換性がない場合は、エラーが発生します。
bcp 関数と IBCPSession および IBCPSession2 インターフェイスでは、遅延読み取り (遅延メタデータ検出) を指定して、クエリ出力操作でメタデータ検出を回避できます。 その結果、パフォーマンスが向上し、メタデータ検出のエラーを回避できます。
OLE DB Driver for SQL Server を使用してアプリケーションを開発し、SQL Server 2012 (11.x) より前のバージョンのサーバーに接続する場合、メタデータ検出機能はそのバージョンのサーバーに対応したものとなります。
解説
SQL Server 2012 (11.x) では次の OLE DB メンバー関数が機能強化され、メタデータ検出機能が向上しています。
IColumnsInfo::GetColumnInfo
IColumnsRowset::GetColumnsRowset
ICommandWithParameters::GetParameterInfo (詳細は「ICommandWithParameters」を参照)
IBCPSession::BCPSetBulkMode を使用してメタデータ形式を指定したときのパフォーマンスも向上しています。
OLE DB Driver for SQL Server でのメタデータ検出機能の強化は、SQL Server 2012 (11.x) への次の 2 つのストアド プロシージャの追加により実現されました。
sp_describe_first_result_set
sp_describe_undeclared_parameters