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

3
我有一个数据库,其排序规则设置错误。我更改了数据库的排序规则,但这也导致了各个列的排序规则不正确。这给我带来了问题。
因此,我编写了一个脚本来循环遍历并更改各个列的排序规则,基本上是有效的,但其中一些列是它们所在表的聚集索引的一部分,我无法更改这些列。
例如,如果我运行:
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.

有没有办法解决这个问题,改变这些列的排序规则?显然我不能删除索引,因为它构成了主键。我想我可以暂时删除主键,但我不想这样做。

1个回答

2

您需要删除所有依赖项。

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

通常,MS KB 325335 提供了有关如何为整个数据库和所有列执行此操作的选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接