次の方法で共有


複数バージョン間の互換性

バージョン間の競合は、SQL Server 2008 より前のバージョンの SQL Server のクライアント インスタンスまたはサーバー インスタンスでテーブル値パラメータを処理する必要がある場合に発生することがあります。

一般に、テーブル値パラメータの機能を使用できるのは、SQL Server 2008 (以降) のサーバーに接続されている SQL Server 2008 以降のクライアント (SQL Server Native Client 10.0 を使用) だけです。カタログ関数の結果セットの新しい列は、SQL Server 2008 サーバーに接続されているときにのみ存在します。

以前のバージョンの SQL Server Native Client でコンパイルされたクライアント アプリケーションで、テーブル値パラメータが必要なステートメントを実行すると、サーバーではデータ変換エラーからこの状態が検出され、ODBC によって、これが "データ型の属性に関する制限に違反しました" というメッセージの SQLSTATE 07006 として返されます。

SQL Server Native Client 10.0 以降のバージョンでコンパイルされたクライアント アプリケーションで、SQL Server 2008 より前のバージョンのサーバー インスタンスに接続されている場合にテーブル値パラメータの使用を試みると、SQL Server Native Client ではこれが検出され、SQLBindColSQLBindParameterSQLSetDescFields、および SQLSetDescRec の呼び出しが失敗して、"データ型の属性に関する制限に違反しました (この接続の SQL のバージョンではテーブル値パラメータがサポートされません)" というメッセージの SQLSTATE 07006 が返されます。