更改 SQL 2005 中聚集索引列的排序规则

2024-02-29

我有一个使用错误排序规则创建的数据库。我更改了数据库的排序规则,但这也导致各个列的排序规则也不正确。这给我带来了一个问题。

因此,我编写了一个脚本来循环并更改各个列的排序规则,这基本上有效,除了作为各自表上的聚集索引一部分的一些列之外。这些我无法改变。

例如,如果我运行:

ALTER TABLE MyTable 
ALTER COLUMN MyColumn varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL

我得到的答复是:

Msg 5074, Level 16, State 1, Line 1
The object 'DF_MyTable_MyColumn' is dependent on column 'MyColumn'.
Msg 5074, Level 16, State 1, Line 1
The object 'PK_MyTable_MyColumn_MyOtherColumn' is dependent on column 'MyColumn'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE ALTER COLUMN deleted failed because one or more objects access this column.

有什么方法可以解决这个问题来更改这些列的排序规则吗?显然,我不能删除索引,因为它构成主键。我想我可以暂时删除 PK,但我不愿意。


您必须删除所有依赖项。

当您更改数据库排序规则时,您仅更改系统表。 所有其他文本类型列都需要手动更改。

一般来说,微软知识库 325335 http://support.microsoft.com/default.aspx?scid=kb;en-us;325335有关于如何对整个数据库和所有列执行此操作的选项

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 SQL 2005 中聚集索引列的排序规则 的相关文章

随机推荐