3

クエリの一部として 2 つのリモート データベースがあります

select p.ID,p.ProjectCode_VC,p.Name_VC,v.*
FROM [serverB].Projects.dbo.Projects_T p
LEFT JOIN [serverA].SOCON.dbo.vw_PROJECT v on
p.ProjectCode_VC = v.PROJ_CODE

問題は、serverA が照合Latin1_General_BINを使用し、serverB が使用Latin1_General_CP1_CP_ASし、クエリが実行を拒否することです。

どちらのサーバーも SQL 2000 サーバーです。両方のデータベースは固定されているため、残念ながら照合順序を変更することはできません。

とにかく、これを機能させる方法を知っていますか?

更新: 別の解決策を見つけました。リンク サーバーのプロパティでは、リンク サーバーの照合順序を指定できます。

4

2 に答える 2

9

次のように、照合を選択に追加するだけです。

select 
  p.ID,
  p.ProjectCode_VC,
  p.Name_VC,
  v.* 
FROM
  [serverB].Projects.dbo.Projects_T p 
  LEFT JOIN [serverA].SOCON.dbo.vw_PROJECT v on p.ProjectCode_VC 
    collate Latin1_General_Bin = v.PROJ_CODE

またはその逆。そのため、照合の 1 つを別の照合に「変換」します。

于 2008-11-03T14:47:31.243 に答える
2

または、次のようなより一般的なクエリを使用できます。

select * from profile, userinfo
where profile.custid collate database_default = userinfo.custid collate database_default
于 2011-11-08T02:28:02.377 に答える