是否可以使SQL Server数据库仅包含区分大小写的数据

时间:2015-02-19 04:35:23

标签: sql-server sql-server-2012 case-sensitive

是否可以使用具有排序规则的SQL Server 2012数据库,该排序规则确保仅将数据视为区分大小写,数据库对象仍以不区分大小写的方式引用?

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

所有研究都倾向于认为这是不可能的,我们能做的最好的事情是确定哪些列确实需要区分大小写,并相应地设置这些列的校对,以便我们可以最小化损害。这是我们最好的希望吗?

1 个答案:

答案 0 :(得分:1)

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

SQL Server排序规则设置取决于安装类型。区分大小写需要对数据进行整理。

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

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

  
      
  1. 在创建数据库时选择一个(或)
  2.   
  3. 在设计表时选择一个
  4.   

请点击此链接了解有关SQL Server Collations的更多信息。

我们可以使用以下T-SQL将数据库归类更改为区分大小写。

ALTER DATABASE <Database_Name> COLLATE Latin1_General_CS_AS 

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

SELECT * FROM fn_helpcollations()