让Varchar PK区分大小写?

时间:2015-01-29 12:42:31

标签: sql-server

我必须在我的SQL Server数据库表中存储Varchar类型的ID。 ID是唯一的,它们将用于更新/删除操作。

所以我决定让它们成为PK。问题是,只允许其中一个PK“A”和“a”,而两者都可能在我必须导入的数据集中。

INSERT INTO test(test) VALUES('A')
INSERT INTO test(test) VALUES('a')
Violation of the PRIMARY KEY constraint 'PK_test'. Cannot insert duplicate key in object 'dbo.test'.

我可以使PK区分大小写 - 以便在插入“A”后,可以插入“a”但不能插入“A”吗?

1 个答案:

答案 0 :(得分:1)

一种选择是将数据库的排序规则更改为一个大小合适的排序规则,例如SQL_Latin1_General_CP1_CS_AS

您可以通过对象资源管理器在SQL Server Management Studio中执行此操作,方法是右键单击数据库并转到"属性>选项"那么"整理"落下。任何有" CS"在名称中区分大小写。

当然,正如评论中指出的那样,这可能是矫枉过正的。您还可以仅覆盖一列的排序规则,如下所述:

https://msdn.microsoft.com/en-us/library/ms190920.aspx