如何使用不区分大小写的排序规则使我的外键区分大小写?

时间:2012-02-02 17:38:13

标签: sql sql-server-2008 foreign-keys collation

我有一个带有CI默认排序规则(French_CI_AS

的数据库

在这种排序规则下,SQL Server会对我的外键进行不区分大小写的检查,这是有道理的,但是引起了我很多问题,主要是因为字符串比较在我的数据库层和我的数据库层中没有相同的行为申请层

我可能在那些varchar PK上大约有二十varchar个PK和数百个FK(是的,我知道只使用bigint因为PK会在第一个PK中避免这个问题地点,但此处不能从varchar移至bigint

最简单的解决方法是什么?我正在使用SQL Server 2008。

2 个答案:

答案 0 :(得分:3)

您可以尝试将列的排序规则更改为区分大小写,但是当您在连接或比较中使用它时,您需要将列(或其他列转换为相同的合并)。

答案 1 :(得分:0)

每当比较字段时,您都可以将pk和fk转换为varbinary(varchar长度)。

类似的东西:

Where CAST(yourPK As VarBinary(20)) = CAST(yourFK As VarBinary(20))