我在sql server 2012中有一个表,其中有一列是主键的一部分。它上面有一个排序集SQL_Latin1_General_CP1_CI_AS
。作为要求的一部分,我需要此列区分大小写,我需要将列排序规则更改为SQL_Latin1_General_CP1_CS_AS
,如下所示:
ALTER TABLE <Table_Name>
ALTER COLUMN <Col Name> <Data Type>
COLLATE SQL_Latin1_General_CP1_CS_AS
据我所知,我不能改变主键列上的排序规则。因此,我从主键群集中删除了列,执行了上面的Alter collation命令并再次返回列主键。不幸的是,虽然在执行alter命令后,排序规则已更改为SQL_Latin1_General_CP1_CS_AS
,但在将该列作为主键后,它会翻回SQL_Latin1_General_CP1_CS_AS
。
如果有人能帮我理解为什么会发生这种情况,会不会感到欣慰?
答案 0 :(得分:0)
尝试使用GUI。不确定为什么,但如果我们使用脚本更改排序规则,它会翻转。
删除主键 - &gt; alter table和change collation - &gt;使用GUI make column not Null - &gt;使用GUI创建列主键。整理不会以这种方式回转。
希望这有帮助!