我有一个带有CI默认排序规则(French_CI_AS
)
在这种排序规则下,SQL Server会对我的外键进行不区分大小写的检查,这是有道理的,但是引起了我很多问题,主要是因为字符串比较在我的数据库层和我的数据库层中没有相同的行为申请层
我可能在那些varchar
PK上大约有二十varchar
个PK和数百个FK(是的,我知道只使用bigint
因为PK会在第一个PK中避免这个问题地点,但此处不能从varchar
移至bigint
最简单的解决方法是什么?我正在使用SQL Server 2008。
答案 0 :(得分:3)
您可以尝试将列的排序规则更改为区分大小写,但是当您在连接或比较中使用它时,您需要将列(或其他列转换为相同的合并)。
答案 1 :(得分:0)
每当比较字段时,您都可以将pk和fk转换为varbinary(varchar长度)。
类似的东西:
Where CAST(yourPK As VarBinary(20)) = CAST(yourFK As VarBinary(20))