我已将我们的一个数据库(DB1)从SQL Server 2008迁移到2012,但运行存储过程时出现以下错误:
无法在相等操作中解决“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AS”之间的排序规则冲突
我使用以下命令更改了数据库的排序规则:
ALTER DATABASE [optimiser] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [optimiser] COLLATE SQL_Latin1_General_CP1_CI_AS
ALTER DATABASE [optimiser] SET MULTI_USER
但是每当存储过程运行时,我仍然会收到错误提示。我认为这是因为SP使用了连接到另一个数据库(GE的ihistorian)并且存在排序规则不匹配的问题。有没有解决此问题的方法。
在旧服务器上,DB1设置为 Latin1_General_CI_AS
并且可以正常工作。在新的位置上,DB的默认设置为 SQL_Latin1_General_CP1_CI_AS
。是否值得将新服务器上的DB1排序规则更改回 Latin1_General_CI_AS
?
COLLATE DATABASE_DEFAULT
。 - Nenad Zivkovic