Sql Server排序規則問題

[問題描述]

      數據庫A與數據庫B分別位於兩臺機器M1與M2上,確定兩個庫都使用了“SQL_Latin1_General_CP1_CI_AS”排序規則,這個可以從數據庫屬性中查詢得知。

      現在數據庫B要使用A的數據,因此,我在B中建立了A的Link Server。

      然後,數據庫B中的Table2與數據庫A中的Table1做join查詢,問題出現了。

      查詢分析器中,報排序規則不一致的問題:“Cannot resolve collation conflict for equal to operation.”

   

      查詢腳本:

      select  * from Table2 b join M1.A.dbo.Table1 a on b.Code=a.Code

 


 

[我的嘗試]

      其實,我是想做一張統計報表,問題遠沒有這麼簡單,我是將其他的枝葉去掉了,然後將問題定位到這句話中。

      1. 我確定了這個兩個的排序規則一致。

      2. 確定這兩個表join的兩個字段,使用數據庫默認的排序規則,換句話說,規則也是一致的。

 

      這就無法解釋了?難道是link server的問題?

 


 

[解決問題]

      在一篇帖子中找到了一點靈感:

       http://topic.csdn.net/u/20080429/14/791336f1-e198-4c5d-967b-dcb3d9caf389.html

      上面有一段設置排序規則的語法:

     

     

      我在上面的腳本中,指定了排序規則:

      select  * from Table2 b join M1.A.dbo.Table1 a on b.Code COLLATE SQL_Latin1_General_CP1_CI_AS =a.Code COLLATE SQL_Latin1_General_CP1_CI_AS

     

      問題解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章