【发布时间】:2012-02-22 21:32:15
【问题描述】:
在我们的开发服务器上,我们有一个带有排序规则的数据库服务器:COLLATE SQL_Latin1_General_CP1_CI_AS。
在服务器上部署我们的解决方案并且该数据库服务器具有排序规则后:COLLATE SQL_Latin1_General_CI_AS
这意味着如果我们有一个查询:
SELECT ('text' + 'abc') AS 'result'
我遇到了这个问题:
无法执行 varchar 值到 varchar 的隐式转换,因为值的排序规则由于排序规则冲突而未解决。
所以我尝试了这个:ALTER DATABASE [mydb] COLLATE SQL_Latin1_General_CP1_CI_AS
然后我检查了 myDB 的属性,排序规则更改为:SQL_Latin1_General_CI_CS_AS 但我仍然得到同样的错误。
其他主题建议重新安装数据库。但情况并非如此,我们会丢失所有数据。
非常感谢任何建议!
提前致谢。
【问题讨论】:
-
两个 cmets:(1) 您可以同时在连接和其他表达式上添加
COLLATE子句,同时更新所有表以使用正确的排序规则。 (2) 不要将'single quotes'用于别名 - 此语法已被弃用,并且将在即将发布的 SQL Server 版本中停止工作。
标签: sql-server-2008 sql-server-2005 collate