2

2005 から 2008 の Microsoft SQL Server からリンク サーバーを作成しようとしています。私は 2005 のインスタンスで定期的にこれを行っていますが、これは SQL 2008 への長い旅の最初のステップです。他のリンク サーバーと同じようにリンク サーバーを作成できます。エラーは発生しませんが、リンク サーバーを使用しようとするたびにサーバー (単純な "SELECT *" ステートメントなど) の場合、SSMS で次のエラーが発生します。

「リンク サーバー {リンク サーバー名} の OLE DB プロバイダー "SQLNCLI" から、"キャスト指定の文字値が無効です" というメッセージが返されました。」

2005 インスタンスで 2008 インスタンスへのリンク サーバーを作成する場合に知っておくべきことは何ですか?

4

4 に答える 4

2

私がテストすることを選択し続けたテーブル、2008サーバーで最もビジネス上重要なテーブルは、それぞれ2008年の新機能である「geography」データ型のフィールドを持っていました。このデータ型のない他のテーブルの1つでクエリをテストする場合、クエリは正しく機能します。

だから...あなたが知っている...それは...結局のところ「キャスト仕様の無効な文字値」でした。

于 2009-06-17T14:24:57.990 に答える
0

これは照合の問題であると思われます。

照合順序がサーバー、データベース、およびテーブル レベルで同じであることを確認してください。

detault サーバーの照合順序を確認するには、次の T-SQL を実行します。

exec sp_helpsort

Databasea 照合順序を確認するには、次の手順を実行します。

SELECT DATABASEPROPERTYEX('DatabaseName', 'Collation') SQLCollation;
于 2009-06-12T22:13:13.493 に答える
0

地理フィールドを持つリンク サーバー上のテーブルをクエリし、エラーを発生させない特定の方法はありましたか?

リンクサーバーにクエリを実行する必要があり、一部のテーブルに地理フィールドが含まれているという同じ問題があり、テキストフィールドのみを選択してもエラーが発生します。私が考えることができる唯一の回避策は、地理フィールドを新しいテーブルに分割して、テーブルへのクエリが壊れないようにすることです。

于 2011-07-16T03:09:22.373 に答える
0

照合 (私の最初の推測) または Unicode 変換 (VARCHAR と NVARCHAR) のいずれかです。私はジョンに賛成票を投じますが、私には十分な評判がありません.

于 2009-06-17T11:34:36.537 に答える