Sql server SQL Server:区分大小写的匹配?

Sql server SQL Server:区分大小写的匹配?,sql-server,case-sensitive,Sql Server,Case Sensitive,考虑到现有的SQL Server数据库和有限的更改能力,有没有办法实现区分大小写的匹配 由于电源有限,用户无法选择以任何方式重新安装数据库或更改排序规则 我理解不区分大小写的便利性,但有时您需要处理大小写重要的数据。您可以指定带有区分大小写排序规则的COLLATE子句来强制进行区分大小写的比较: SELECT * FROM dbo.Example WHERE Col1 COLLATE SQL_Latin1_General_CP1_CS_AS = 'A'; 但是,这将导致表达式无法有

考虑到现有的SQL Server数据库和有限的更改能力,有没有办法实现区分大小写的匹配

由于电源有限,用户无法选择以任何方式重新安装数据库或更改排序规则


我理解不区分大小写的便利性,但有时您需要处理大小写重要的数据。

您可以指定带有区分大小写排序规则的
COLLATE
子句来强制进行区分大小写的比较:

SELECT * 
FROM dbo.Example
WHERE 
    Col1 COLLATE SQL_Latin1_General_CP1_CS_AS = 'A';
但是,这将导致表达式无法有效使用列上的索引(例如,扫描而不是搜索)。还可以考虑指定谓词而不使用<代码> CORATET< /CODE>,这样就可以使用索引查找,并根据区分大小写来过滤行。
SELECT * 
FROM dbo.Example
WHERE 
    Col1 = 'A' 
    AND col1 COLLATE SQL_Latin1_General_CP1_CS_AS = 'A';

这抱歉-非sargable?@Manngo,我添加了一个带有非sargable定义的链接: