2009-06-25 7 views
2

Microsoft SQL Server 2005/2008でUnicodeを初めて使用しました.VarChar()の代わりにNVarChar()を使用するようにDBを変換しました。ソートがVarChar()と違うことが私の驚いたことにわかった。私はStackOverflowのこの他のリファレンスを見つけました。SQL Sorting and hyphensについては、Unicodeソートは「単語」ベースで行われていると説明されています。さらに研究を重ねた結果、私はUnicode Consortiumサイト(www.unicode.org)、特にUnicode Text Segmentation(www.unicode.org/reports/tr29)のサイトでこれについて説明しており、ハイフンは特殊なケースとして言及しています。 (申し訳ありません、新しいユーザーとして、私はこれらのハイパーリンクを投稿できませんでした)。T-SQL Unicode "word"の定義

しかし、私が定義しようとしているのは、特に米国英語の照合のために、さまざまな照合のルールが正確です。他に特別なケースは何ですか?たとえば、無視される文字はハイフンだけですか?アポストロフィのような他の句読点はどうですか?

すべてのリンクまたはポインターを高く評価します。

+1

タグ提案のプロンプトにもっと注意を払ってください。他の7つの 't-sql'タグと1000を超える 'tsql'タグがありました。その文脈であなたはどちらが正しいと思いますか?しかし、質問のためのUpvote –

+0

。私はユニコードについては知らなかった:毎日何かを学ぶ。 –

+0

あなたは正しいです。私は別の質問から「T-SQL」タグを得て、「TSQL」変種を探すとは思わなかった。次回はそのことを覚えています。 –

答えて

1

SQL照合は使用しないでください。 Windowsを使用してください。これは "Windows Collation Sorting Styles" からthe KB article.

に記載されている:Windows照合順序については

、nchar型は、 NVARCHAR、および CHAR、VARCHAR、およびテキスト以外のと同じソート振る舞いを持って Unicodeデータ型NTEXT -Unicode データ型。

ただし、ユニコードがある理由も考慮する必要があります。ソートの問題に加えて、遅いです:varchar vs nvarchar performanceeven MS agreee

+0

Windowsの照合とSQLの照合について理解しています。私が見つけようとしているのは、ちょうどWindowsの照合のルール(BIN以外のもの)です。ハイフンは無視され、そのような他のルールの定義を見つけようとしています。また、あなたはスピードについてのポイントを持っていますが、それは別の日の話です。実際には、私たちの設定ではパフォーマンスの低下は見られませんでした。 –

関連する問題