sql - 如何在具有不区分大小写的排序规则的数据库上使我的外键区分大小写?

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

我有一个带有 CI 默认排序规则的数据库 ( French_CI_AS )

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

我大概有二十个 varchar PKs 和数百个 FKs varchar PK(是的,我知道只使用 bigint 因为 PK 本来可以避免这个问题,但是从 varchar 移动到 bigint 在这里不是一个选择)

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

最佳答案

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

关于sql - 如何在具有不区分大小写的排序规则的数据库上使我的外键区分大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9117100/

相关文章:

MySQL创建外键时显示成功消息,但实际上并没有创建外键

sql - ALTER TABLE 语句与 FOREIGN KEY 约束冲突

php - PDO 和 MySQL 'between'

mysql - SQL INNER JOIN 修复

java - 连接两个表以获得完整记录

sql-server - SQL Server 2008 类型转换案例

sql - 关于重复数据删除软件的建议?

asp.net - 检查 site.master 页面中的状况

mysql - mySQL 中每个子查询的最大值

SQL 需要外列中的文字值