メタデータの検出

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 2012 で 2 つのストアド プロシージャが追加されたため、SQL Server Native Clientのメタデータ検出が改善されました。

  • sp_describe_first_result_set

  • sp_describe_undeclared_parameters

参照

SQL Server Native Client の機能