如何更改CRM 2011 SQL数据库的排序规则?

问题描述:

我有一个CRM 2011数据库集合,所有这些数据库都安装在运行SQL 2008 R2的同一SQL服务器上。其中一个数据库的排序规则为Modern_Spanish_Cl_Al,而其他所有数据库的排列规则为Latin1_General_Cl_Al。我希望所有这些都设置为Latin1,所以我想回去修复西班牙语数据库,使其与其他人一样。如何更改CRM 2011 SQL数据库的排序规则?

如何将数据库排序规则从Modern_Spanish_Cl_Al更改为Latin1_General_Cl_Al

我尝试使用UI在数据库级别做,但我收到一百万这样的错误:

统计“TeamBase.fndx_Sync_VersionNumber”是依赖于数据库归类。如果模式绑定对象依赖于该数据库,则无法更改数据库排序规则。删除数据库归类的依赖关系,然后重试该操作。

我试图同时使用UI将列级别,但接收到的不同的错误消息:

保存更改是不允许的。您所做的更改需要将以下表格删除并重新创建...

我在测试环境中处理此问题,因此我愿意尝试,并且我意识到我在尝试如果不打破CRM,可能无法做到。

你尝试创建一个新的数据库使用正确的排序规则

CREATE DATABASE DatabaseName COLLATE Latin1_General_Cl_Al; 

然后备份恢复使用不正确的排序规则,DB到新的?
如果要进行此项工作,则必须使用Deployment Manager中的导入组织向导,根据新数据库导入新组织。

编辑

寻找到在此之后,它似乎很难改整理,做备份,即使/恢复。
如果你想改变数据库级别的排序规则,唯一的选择似乎是一个

ALTER DATABASE ... COLLATE 

但这只会影响新对象。然后您将不得不使用ALTER TABLE来更改现有的表。此外,由于整理规定了数据的排序和存储方式,因此需要导出所有数据并再次将其导入(例如,使用BCP和BULK INSERT)。要添加到此,列的某些属性可防止更改排序规则(例如某些约束和模式绑定函数引用)。如果您想要更改整个数据库的排序规则,最简单的方法可能是编写数据库脚本并使用正确的排序规则创建一个新规则,然后将数据整理到新的数据库中。

+0

有没有人曾经为CRM 2011数据库成功完成过此任务? – nairware 2014-03-09 07:52:55

+0

完成了什么?脚本和重新创建? – 2014-03-25 13:31:34

+0

按照本答复中概述的过程更改了CRM 2011 SQL数据库的排序规则。 – nairware 2014-03-25 14:53:36