簡體   English   中英

如何在數據庫中查詢區分大小寫的值

[英]How to query database for case sensitive values

我正在檢查數據庫中的一些值,似乎正在比較的字符串不區分大小寫。 我正在使用C#和LINQ to SQL。

您不需要更改數據庫,可以修改查詢以區分大小寫:

SET NOCOUNT ON
declare @curdb sysname; select  @curdb =  db_name(0);
select  DATABASEPROPERTYEX(@curdb, 'Collation') Collation;

if object_id('test_CI', 'U') is not null
    drop table test_CI
go

create table test_CI (
    val varchar(10)
    );
go
insert into test_CI values ('TEST');    
insert into test_CI values ('Test');    
insert into test_CI values ('test');    

-- 
select * from test_CI where val = 'Test';

select * from test_CI where val collate Latin1_General_CS_AS = 'Test';

只需使用當前的排序順序,然后用CS替換CI即可。

在SQL Server中,列是否區分大小寫取決於您對其應用的排序規則。

默認排序規則可能是“ SQL_Latin1_General_CP1_CI_AS”(CI為“不區分大小寫”)。 如果更改數據庫架構,以使該列具有排序規則“ SQL_Latin1_General_CP1_CS_AS”,則對它的查詢將區分大小寫。

檢查此處提供的整理矩陣:

http://msdn.microsoft.com/en-us/library/ms144250.aspx

我認為您將需要像SQL_Latin1_General_Cp437_CS_AS_KI_WI

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM