积极答复者
在Mssql 2005中如何修改AdventureWorks的排序?

问题
-
All,
MSSQL 2005数据库的示例数据库 AdventureWorks中大小写敏感,它的排序规则是Latin1_General_CS_AS,我如何才能改成Chinese_PRC_CI_AI,
使用了
use master
Alter Database AdventureWorks Collate Chinese_PRC_CI_AI
,有错误提示如下:
消息 5030,级别 16,状态 2,第 1 行
无法用排他锁锁定该数据库,以执行该操作。
消息 5072,级别 16,状态 1,第 1 行
ALTER DATABASE 失败。无法将数据库 'AdventureWorks' 的默认排序规则设置为 Chinese_PRC_CI_AI。
请问如何处理?
patrick
答案
-
在对数据库应用不同排序规则之前,请确保已满足下列条件:
- 您是当前数据库的唯一用户。
- 没有依赖数据库排序规则的架构绑定对象。
如果数据库中存在下列依赖于数据库排序规则的对象,则 ALTER DATABASE
- 通过 SCHEMABINDING 创建的用户定义函数和视图。
- 计算列。
- CHECK 约束。
- 表值函数返回包含字符列的表,这些列继承了默认的数据库排序规则。
- 通过 SCHEMABINDING 创建的用户定义函数和视图。
- 改变数据库的排序规则不会在任何数据对象的系统名称中产生重复名称。
如果改变排序规则后出现重复的名称,则下列命名空间可能导致改变数据库排序规则的操作失败:
- 对象名,如过程、表、触发器或视图。
- 架构名称
- 主体,例如组、角色或用户。
- 标量类型名,如系统和用户定义类型。
- 全文目录名称。
- 对象内的列名或参数名。
- 表范围内的索引名。
- 对象名,如过程、表、触发器或视图。
I Love SQL Server!- 已建议为答案 KeFang Chen 2009年3月9日 5:28
- 已标记为答案 KeFang Chen 2009年3月13日 8:05
- 您是当前数据库的唯一用户。
-
Keep in mind that changing database collation doesn't affect existing objects, only new created objects will have new collation.
- 已建议为答案 KeFang Chen 2009年3月9日 5:28
- 已标记为答案 KeFang Chen 2009年3月13日 8:05
全部回复
-
在对数据库应用不同排序规则之前,请确保已满足下列条件:
- 您是当前数据库的唯一用户。
- 没有依赖数据库排序规则的架构绑定对象。
如果数据库中存在下列依赖于数据库排序规则的对象,则 ALTER DATABASE
- 通过 SCHEMABINDING 创建的用户定义函数和视图。
- 计算列。
- CHECK 约束。
- 表值函数返回包含字符列的表,这些列继承了默认的数据库排序规则。
- 通过 SCHEMABINDING 创建的用户定义函数和视图。
- 改变数据库的排序规则不会在任何数据对象的系统名称中产生重复名称。
如果改变排序规则后出现重复的名称,则下列命名空间可能导致改变数据库排序规则的操作失败:
- 对象名,如过程、表、触发器或视图。
- 架构名称
- 主体,例如组、角色或用户。
- 标量类型名,如系统和用户定义类型。
- 全文目录名称。
- 对象内的列名或参数名。
- 表范围内的索引名。
- 对象名,如过程、表、触发器或视图。
I Love SQL Server!- 已建议为答案 KeFang Chen 2009年3月9日 5:28
- 已标记为答案 KeFang Chen 2009年3月13日 8:05
- 您是当前数据库的唯一用户。
-
Keep in mind that changing database collation doesn't affect existing objects, only new created objects will have new collation.
- 已建议为答案 KeFang Chen 2009年3月9日 5:28
- 已标记为答案 KeFang Chen 2009年3月13日 8:05