0

私は新しいデータベースサーバーを準備しています。そこでは、既存の大規模な多言語データベース(主に英語/フランス語/スペイン語のテキスト、都市名などの他の言語の特殊文字はめったにありません)からデータを移行します。私の質問は:それはアクセントに敏感であるべきですか?検索でカフェとカフェの間に違いがなければ、ユーザーは喜ぶでしょう。しかし、DBAとして、私は心配しています。データベースが少なくとも時々、悪い文字変換に悩まされていないのを見たことがありません。アクセントに依存しないことを選択した場合、データベースにクエリを実行して、「タイトルに特殊文字が含まれているすべての本を教えてください」と尋ねるにはどうすればよいですか。私がこれを行う方法があれば、私は喜んでアクセントに鈍感になります。

4

2 に答える 2

1

それはあなたの一般的な使用法に依存するはずです。

これは、特定のクエリに対して変更することを妨げるものではありません

例えば

declare @t1 table (word nvarchar(50) collate Latin1_General_CI_AI)
declare @t2 table (word nvarchar(50) collate Latin1_General_CI_AS)

insert @t1 values ('cafe'),('restaurant'), ('café')
insert @t2 select * from @t1

select * from @t1 where word like 'cafe' 
select * from @t1 where word like 'cafe' collate Latin1_General_CI_AS
select * from @t1 where word like 'café' 
select * from @t1 where word like 'café' collate Latin1_General_CI_AS

select * from @t2 where word like 'cafe' 
select * from @t2 where word like 'cafe' collate Latin1_General_CI_AI
select * from @t2 where word like 'café' 
select * from @t2 where word like 'café' collate Latin1_General_CI_AI
于 2012-09-19T09:23:46.440 に答える
1

選択した時間に照合を変更できます。

with t as (
select 'ali' as w union
select 'àli' as w
) 
select *
into #t
from t;

select * from #t
where w  collate Latin1_General_CS_AS_KS_WS like '%à%'

w   
--- 
àli 


select * from #t
where w  collate Traditional_Spanish_ci_ai like '%à%'

w   
--- 
ali 
àli 
于 2012-09-19T09:29:17.587 に答える