2
我们只是将某些数据库迁移到新的SQL Server 2012中,并且出现了一些敏感问题。如何定义SQL Server colum名称不区分大小写,但值区分大小写
我们想表&列名不区分大小写,但值应该是大小写敏感的,所以
select ... where 'a'='A'
应该不返回任何行,但
select Column from Table
select column from table
应该都工作。
我们试图从 Modern_Spanish_CI_AS -> 'a'='A' is true
改变数据库(服务器默认值),这是我们不希望,到 Modern_Spanish_CS_AS -> the column/table names must match the defined case
有什么办法来获得所需的行为?
我应该明白,一个创建数据库的COLLATE子句适用于元数据以及用户数据......而列定义的在创建表COLLATE子句仅适用到用户数据? – DeepButi
是的。如果您的数据库是一个包含的数据库,您可以避免使用列定义的COLLATE子句 - 请参阅我对包含的数据库归类的答案中的链接,此处:https://msdn.microsoft.com/en-us/library /ff929071(v=sql.110).aspx关于包含的数据库。 –
Thks。你是对的,在列上测试COLLATE。我们将研究哪个选项更容易,整理每列或包含的数据库。 – DeepButi