【问题标题】:SQL COLLATION can not resolveSQL COLLATION 无法解析
【发布时间】: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


【解决方案1】:

简而言之,仅仅改变数据库是不够的,因为这只会影响未来创建的新对象。您还必须更改所有现有列。这篇 Microsoft 支持文章应该包含您需要的所有详细信息。

How to transfer a database from one collation to another collation in SQL Server

【讨论】:

    猜你喜欢
    • 2013-09-19
    • 2021-04-06
    • 2013-10-14
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多