在sql server 2012中的主键列上启用排序规则

时间:2014-05-16 23:46:53

标签: collation

我在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 collat​​ion命令并再次返回列主键。不幸的是,虽然在执行alter命令后,排序规则已更改为SQL_Latin1_General_CP1_CS_AS,但在将该列作为主键后,它会翻回SQL_Latin1_General_CP1_CS_AS

如果有人能帮我理解为什么会发生这种情况,会不会感到欣慰?

1 个答案:

答案 0 :(得分:0)

尝试使用GUI。不确定为什么,但如果我们使用脚本更改排序规则,它会翻转。

删除主键 - &gt; alter table和change collat​​ion - &gt;使用GUI make column not Null - &gt;使用GUI创建列主键。整理不会以这种方式回转。

希望这有帮助!