6

新しい SQL Server 2008 サーバーをインストールしていますが、さまざまな照合順序に関する有用な情報を取得するのに問題があります。SQL Server BOL を検索し、Google で答えを探しましたが、有用な情報を見つけることができないようです。

  1. "Finnish_Swedish_100"Windows Collat​​ionとの違いは何"Finnish_Swedish"ですか?

    -version は SQL Server 2008 で更新された照合順序だと思い"_100"ますが、そうであれば古いバージョンからどのような変更がありましたか?

  2. 通常、有効にすることは良いこと"Accent-sensitive"ですか? タスクなどに依存することはわかっていますが、考慮すべきよく知られた長所と短所はありますか?

  3. "Binary"パラメータとパラメータ。これら"Binary-code point"を有効にする必要があるのはどのような場合ですか?

4

7 に答える 7

5

_100は、SQL Server 2008の新しい照合シーケンスを示し、_90のあるものは2005のものであり、サフィックスのないものは2000です。違いが何であるかわかりません。また、ドキュメントも見つかりません。別のバージョンの別のSQLサーバーにリンクされたサーバークエリを実行しているのでない限り、私は_100サーバーを使用したくなるでしょう。申し訳ありませんが、違いについてはお役に立てません。

于 2009-02-10T08:56:46.517 に答える
4

照合順序を AI (Accent Insensitive) に設定するだけで、ÅÄÖ/åäö の文字が A と O と混同されることはありません。ただし、個々の文字としてのスウェーデン語アルファベットの一部ではない â およびその他の「組み合わせ」については、これが当てはまります。â は、問題の設定に応じて、混ざったり混ざらなかったりします。

リンクサーバーを使用してまだ通信する必要がある古いデータベースがたくさんあるので、SQL2008をインストールしているので、FINNISH _SWEDISH _CI _ASを選択しました。これは、Windows 照合順序が SQL Server に最初に登場したときの FINNISH _SWEDISH の既定の設定でした。

于 2009-09-23T10:12:35.347 に答える
3

以下のクエリを使用して、自分で試してみてください。

ご覧のとおり、å、ä などはアクセント付き文字としてカウントされず、フィンランド語/スウェーデン語の照合を使用すると、スウェーデン語のアルファベットに従って並べ替えられます。

ASただし、アクセントは、照合を使用する場合にのみ考慮されます。照合ではAI、あたかもまったくアクセントがないかのように、それらの順序は変更されません。

CREATE TABLE #Test (
    Number int identity,
    Value nvarchar(20) NOT NULL
);
GO

INSERT INTO #Test VALUES ('àá');
INSERT INTO #Test VALUES ('áa');
INSERT INTO #Test VALUES ('aa');
INSERT INTO #Test VALUES ('aà');

INSERT INTO #Test VALUES ('áb');
INSERT INTO #Test VALUES ('ab');

-- w is considered an accented version of v
INSERT INTO #Test VALUES ('wa');
INSERT INTO #Test VALUES ('va');
INSERT INTO #Test VALUES ('zz');
INSERT INTO #Test VALUES ('åä');
GO

SELECT Number, Value FROM #Test ORDER BY Value COLLATE Finnish_Swedish_CI_AS;
SELECT Number, Value FROM #Test ORDER BY Value COLLATE Finnish_Swedish_CI_AI;
GO

DROP TABLE #Test;
GO
于 2009-09-23T10:36:35.017 に答える
2

質問 3 に対処するには ( MSDNから取得した情報; 彼らの言葉遣い、形式の私のもの):

バイナリ ( _BIN):

  • 各文字に定義されたビット パターンに基づいて、SQL Server テーブル内のデータを並べ替えて比較します。
  • バイナリの並べ替え順序では、大文字と小文字が区別され、アクセントが区別されます。
  • Binary は、最速のソート順でもあります。
  • このオプションが選択されていない場合、SQL Server は、関連する言語またはアルファベットの辞書で定義されている並べ替えおよび比較規則に従います。

バイナリ コード ポイント ( _BIN2):

  • Unicode データの場合: Unicode コード ポイントに基づいて、SQL Server テーブルのデータを並べ替えて比較します。
  • 非 Unicode データの場合: バイナリ ソートと同じ比較を使用します。

バイナリ コード ポイントの並べ替え順序を使用する利点は、並べ替えられた SQL Server データを比較するアプリケーションでデータの並べ替えが必要ないことです。その結果、バイナリ コード ポイントの並べ替え順序を使用すると、アプリケーション開発が簡単になり、パフォーマンスが向上する可能性があります。

詳細については、BIN および BIN2 照合順序の使用に関するガイドライン を参照してください。

于 2009-02-10T09:11:09.540 に答える
0

あなたの質問に答えるには1.アクセントに敏感なのは、フィンランド語-スウェーデン語を有効にしたことは良いことです。それ以外の場合、「å」と「ä」は「a」としてソートされ、「ö」は「o」としてソートされます。(そのような国際的なキャラクターを使用すると仮定します)。

詳細はこちら: http: //msdn.microsoft.com/en-us/library/ms143515.aspx(バイナリコードポイントとアクセント感度の両方について説明しています)

于 2009-02-10T08:38:12.677 に答える
0

質問2に対処するには:

はい、特定の言語でアクセントが必要な場合は文法を使用できます。

于 2009-02-10T08:44:32.770 に答える
0

質問 2 と 3 について

アクセントの感度は、ユーザーデータを受け入れる場合はオフにし、クリーンでサニタイズされたデータがある場合はオンにすることをお勧めします。私自身はフィンランド人ではないので、単語の中にある ô õ や ö によって異なる単語がどれだけあるのかわかりません。しかし、データを入力するユーザーがいる場合、それらのユーザーの使用方法が一貫していないことは確かであり、それらを一致させたいと考えています。内容がわかっているデータセットからデータを収集し、その一貫性がわかっている場合は、違いが意図的なものであることがわかっているため、アクセントの感度をオンにする必要があります。

質問 3 を検討する際にも同じ質問が当てはまります (Tomalak が提供するリンクから主に取得しています) データが大文字と小文字とアクセントを区別する場合は、_BIN が必要です。データが不規則で、大文字と小文字やアクセントが区別されない場合は、_BIN2 が必要になります。これは、Unicode データ用に設計されているためです。

于 2009-02-10T14:02:43.777 に答える