2011-07-20 9 views
0

データベースのフィールドに単語の訂正を適用する必要があります。これらの修正は、フランス語のアクセントが欠けていることです。私は2つのテーブルを持っています.1つは会社データと会社名フィールドで、特定の単語にはアクセントがなく、2番目のテーブルにはアクセントが必要な既知の単語のコレクションがあります。SQLサーバーでの単語の一致と置換

ID CompanyName       ID Word 
------------------------------   --------------------------- 
1 Jim Desormeaux Electrique   1 Désormeaux 
2 Entreprises D Desormiers Inc.  2 Électrique 
              3 Désormiers 

私は、最初のテーブルに企業名の中に一致する単語をseachedと第二版のバージョンと一致する単語を置き換えますクエリを作成したいです。このような。

ID CompanyName      
------------------------------   
1 Jim Désormeaux Électrique    
2 Entreprises D Désormiers Inc. 

は今、私はアクセントを持つ単語がアクセントなしの単語と一致するように、私は照合「Latin1_General_CI_AI」引数を使用することができることを知っています。だから私はこのようなことをすることができた。

UPDATE C 
SET C.CompanyName = REPLACE(C.CompanyName, AWR.Word, AWR.Word) 
FROM Companies C 
INNER JOIN AccentsWordRepository AWR ON C.ListingName LIKE '% ' + AWR.Word + ' %' 
    OR C.ListingName LIKE '%' + AWR.Word + ' %' 
    OR C.ListingName LIKE '% ' + AWR.Word + '%' 

ここでの問題は、これは実際には遅く、これを行うためのよりよい方法があるのだろうと思っていたことです。

ありがとうございます。

答えて

0

数年前私は多くの文字列を処理するストアドプロシージャのパフォーマンスを向上させるために、処理ロジックをSQL ServerにデプロイされたCLRアセンブリに移動することで得られた最高の結果を得ました。しかし、とにかくそれを試すことができます。

Here is私が見つけた例はなく、確かに自分で

+0

私はそれになります、ありがとうございます。 –

0

それを検索することができ、SQL Serverのフルテキスト検索は、あなたのためにすべての可能な解決策を提供していますか?それは各バージョンで徐々に良くなってきており、確かに何かを提供しなければなりません。

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