【问题标题】:change collation of DB SQL Server 2008更改 DB SQL Server 2008 的排序规则
【发布时间】:2011-02-14 11:38:52
【问题描述】:

我在 SQL Server 2008 Express (10.0.1600.22) 中创建了一些新数据库,并从 SQL Server 2005 Express (9.00.1399.06) 中恢复了一个。

这些排序规则不同,因此我无法跨它们执行查询。所以我正在尝试更改恢复的数据库排序规则

from: SQL_Latin1_Genral_CP1_CI_AS
to:   Latin1_General_CI_AS

但是,新的排序规则不会出现在选项列表中。不确定这是否可能。

顺便说一句 - 不是选项的解决方法:

  • 我无法编写来自 sql server 2005 express 的数据脚本(似乎 - 我可能遗漏了什么)

  • 我无法在 2K8 服务器上编写数据库脚本,因为这样做时出现内存不足异常:-(

【问题讨论】:

  • 也许尝试将恢复的数据库的兼容模式更改为100,看看它是否出现在选项列表中?
  • “没有出现在选项列表中”的意思是我右键单击 DB>properties>options> collat​​ion 下拉菜单。
  • 我试过这个,我认为它可以工作,但这是一个错误。我现在在恢复的数据库上将排序规则设置为“Latin1_General_CI_AS”,但我仍然收到以下错误消息:无法解决等于操作中“Latin1_General_CI_AS”和“SQL_Latin1_General_CP1_CI_AS”之间的排序规则冲突。
  • 我已经更改了数据库的排序规则,但我现在需要单独更改列。我想我会发布另一个关于这样做的问题......
  • @Martin,抱歉,如果您发表评论作为答案,我会接受它

标签: collation sql-server-2008-express


【解决方案1】:

如果排序规则对您实例上的其他数据库可见,但不是从 2005 实例恢复的特定数据库,我想知道显示的列表是否取决于数据库兼容性模型。

也许尝试将恢复的数据库的兼容模式更改为 100 以查看它是否出现在选项列表中。

注意更改数据库排序规则不会影响现有列。 Here's a script that may help with that.

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 2010-11-10
    • 1970-01-01
    • 2011-11-14
    • 2014-03-02
    • 2011-03-28
    • 2016-11-17
    • 1970-01-01
    • 2012-11-11
    相关资源
    最近更新 更多