我必须在我的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”吗?
答案 0 :(得分:1)
一种选择是将数据库的排序规则更改为一个大小合适的排序规则,例如SQL_Latin1_General_CP1_CS_AS
。
您可以通过对象资源管理器在SQL Server Management Studio中执行此操作,方法是右键单击数据库并转到"属性>选项"那么"整理"落下。任何有" CS"在名称中区分大小写。
当然,正如评论中指出的那样,这可能是矫枉过正的。您还可以仅覆盖一列的排序规则,如下所述: