web-dev-qa-db-ja.com

2つのバージョンのSQLServerを使用した照合の競合

私はSQLServerの2つのバージョン、つまり2005と2008R2に取り組んでいます。

2008 R2から、古いSQL Server2005インスタンスに接続するリンクサーバーを作成しました。

サーバー(2008)に次のようなテーブルが1つあります。

メンバー

id                  name     
0002320         AOne Enterprises Motihari
0002321         AOne Enterprises Siliguri

リモートサーバーにある別のテーブルには、各エージェントのアクティビティが含まれています

id  member_code agent   rr_no   txn_date    amount

以下のクエリを実行しました

select top 5 * 
from [192.168.6.3].sync.dbo.agents_log
where member_code IN 
      (select id from members where name like 'AOne Enterprises%')

分散データベースにある国全体でAOneEnterprisesのすべてのアクティビティログを取得しようとしたので、リンクサーバーを作成する必要があります。

このエラーが発生しました:

メッセージ468、レベル16、状態9、行1
equal操作での「SQL_Latin1_General_CP1_CI_AS」と「Latin1_General_BIN」間の照合の競合を解決できません。

9
user3026933

何が必要か正確にはわかりませんが、照合の問題が唯一の場合は、以下で実行できます。

SELECT TOP 5 * 
FROM   [192.168.6.3].sync.dbo.agents_log
WHERE  member_code COLLATE SQL_Latin1_General_CP1_CI_AS 
IN (SELECT id
    FROM   members
    WHERE  NAME LIKE 'AOne Enterprises%')

追加しましたCOLLATE SQL_Latin1_General_CP1_CI_AS、おそらく動作します

17
sumit