是否可以有一个 SQL 服务器数据库只包含区分大小写的数据

Is it possible to have a SQL Server database with case sensitive data only

是否可以让 SQL Server 2012 数据库的排序规则确保只有数据被视为区分大小写,而数据库对象仍然以不区分大小写的方式引用?

我们正在将应用程序使用的数据库迁移到 SQL 服务器,该数据库包含区分大小写的数据。但我们不希望以区分大小写的方式处理数据库对象,因为这会对现有代码产生重大负面影响。

所有研究都表明这是不可能的,我们能做的最好的事情就是确定哪些列确实需要区分大小写,并相应地设置这些列的排序规则,这样我们就可以将损失降到最低。这是我们所能期待的最好结果吗?

@Cleggy,看起来你已经从@Xedni 的评论中得到了答案,但将其添加在这里作为以后阅读此页面的任何人的参考。

SQL 服务器排序规则设置取决于安装类型。是否区分大小写取决于数据整理。

默认情况下,使用 SQL 服务器创建的数据库会继承服务器排序规则。 默认情况下,数据库中创建的表中的列继承数据库排序规则。

有很多机会可以在这些选项中为您的数据选择区分大小写的排序规则:

  1. By choosing one when you create the database (Or)
  2. By choosing one when you design the table

请关注此 link 以获得更多关于 SQL Server Collations 的信息。

我们可以使用以下 T-SQL.

将数据库排序规则更改为区分大小写
ALTER DATABASE <Database_Name> COLLATE Latin1_General_CS_AS 

下面的 T-SQL 将有助于理解各种区分大小写的选项。

SELECT * FROM fn_helpcollations()