SQL Server Native Client でのメタデータ検出
適用対象: SQL Server
Azure SQL データベース
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
重要
SQL Server Native Client (SNAC) は同梱されていません。
- SQL Server 2022 (16.x) 以降のバージョン
- SQL Server Management Studio 19 以降のバージョン
SQL Server Native Client (SQLNCLI または SQLNCLI11) と従来の Microsoft OLE DB Provider for SQL Server (SQLOLEDB) は、新しいアプリケーション開発には推奨されません。
新しいプロジェクトの場合は、次のいずれかのドライバーを使用します。
SQL Server データベース エンジン (バージョン 2012 から 2019) のコンポーネントとして付属する SQLNCLI については、この「サポート ライフサイクルの例外」を参照してください。
SQL Server 2012 (11.x) のメタデータ検出の機能強化により、SQL Server Native Client アプリケーションでは、クエリの実行から返される列またはパラメーターのメタデータが、クエリを実行する前に指定したメタデータ形式と同じか、互換性があることを確認できます。 クエリの実行後に返されたメタデータにクエリの実行前に指定したメタデータ形式との互換性がない場合は、エラーが発生します。
bcp 関数と ODBC 関数、および IBCPSession インターフェイスと IBCPSession2 インターフェイスでは、遅延読み取り (遅延メタデータ検出) を指定して、クエリ出力操作でメタデータ検出を回避できます。 その結果、パフォーマンスが向上し、メタデータ検出のエラーを回避できます。
SQL Server 2012 (11.x) で SQL Server Native Client を使用してアプリケーションを開発し、SQL Server 2012 (11.x) より前のバージョンのサーバーに接続する場合、メタデータ検出機能はサーバーのバージョンに対応します。
解説
SQL Server 2012 (11.x) では、次の bcp 関数が強化され、メタデータ検出が強化されました。
また、 bcp_setbulkmodeを使用してメタデータ形式を指定すると、パフォーマンスが向上します。
bcp_control には、bcp_readfmtの動作を制御する新しい eOption BCPDELAYREADFMTがあります。
次の ODBC 関数が SQL Server 2012 (11.x) で強化され、メタデータ検出が強化されました。
SQL Server 2012 (11.x) では次の OLE DB メンバー関数が機能強化され、メタデータ検出機能が向上しています。
IColumnsInfo::GetColumnInfo
IColumnsRowset::GetColumnsRowset
ICommandWithParameters::GetParameterInfo (詳細は「ICommandWithParameters」を参照)
IBCPSession::BCPSetBulkMode を使用してメタデータ形式を指定したときのパフォーマンスも向上しています。
SQL Server Native Client でのメタデータ検出の改善は、SQL Server 2012 (11.x) に 2 つのストアド プロシージャが追加されたために可能です。
sp_describe_first_result_set
sp_describe_undeclared_parameters