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