【问题标题】:Collation conflict between different database collation in SQL Server 2008 R2SQL Server 2008 R2 中不同数据库排序规则之间的排序规则冲突
【发布时间】:2019-03-07 05:03:10
【问题描述】:

我有两个不同的服务器:

服务器 1:它有数据库 DB1collation Latin1_General_CI_AS

服务器 2:有 DB2collation SQL_Latin1_General_CP1_CI_AS

我想出了我需要将DB1server 1 备份和恢复到server 2 的场景。

当我通过linked server 运行一个简单的选择语句时,我最终会说Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation. 出现错误

【问题讨论】:

    标签: sql-server sql-server-2008-r2 collation linked-server


    【解决方案1】:

    在字符列的条件两侧使用:COLLATE DATABASE_DEFAULT。下面的例子。

        select * from es
        inner join es e2
        on es.year COLLATE DATABASE_DEFAULT = e2.year COLLATE DATABASE_DEFAULT
    

    【讨论】:

      【解决方案2】:

      我认为一个简单的解决方法是将 server1 上的 DB1 恢复到新数据库“DB2”;那么可以尝试将DB2的排序规则更改为SQL_Latin1_General_CP1_CI_AS,最后尝试将DB2恢复到server2。

      我还找到了另一个答案here,这可能会有所帮助。

      【讨论】:

      • 创建 DB2 对于保持原始数据库不变以避免任何数据库问题很重要。
      猜你喜欢
      • 2018-03-20
      • 2016-01-04
      • 1970-01-01
      • 2010-10-07
      • 2012-01-21
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 2011-05-05
      相关资源
      最近更新 更多