照合順序の使用 (SQL Server Compact)
照合順序は、特定の言語およびロケールの規範に基づいて文字列データの並べ替えおよび比較を行うための規則を指定します。
SQL Server Compact では Windows 照合順序がサポートされています。SQL Server Compact でサポートされている Windows 照合順序名の一覧については、「サポートされる照合順序 (SQL Server Compact)」を参照してください。
SQL Server Compact 3.5 Service Pack 1 (SP1) では、データベース レベルでの照合順序の設定がサポートされています。つまり、データベース内のユーザー テーブルに含まれるすべての文字列の列 (nchar データ型、nvarchar データ型、および ntext データ型の列) で、大文字と小文字の区別に関する設定が、データベース レベルで指定された設定と同じになります。また、文字列の列のインデックスにも、大文字と小文字の区別に関してデータベース レベルで指定された設定と同じ設定が適用されます。
テーブル名などのオブジェクト名、言語キーワード、関数、およびビューは、照合順序では大文字と小文字が区別されても、SQL Server Compact データベースでは大文字と小文字が区別されません。この機能は SQL Server と異なりますが、この動作は、データベースの照合順序がユーザー データの比較に対してのみ使用される SQL 標準の規定に一致しています。
大文字と小文字が区別されるデータベースへの接続
大文字と小文字が区別される SQL Server Compact データベースには、他の SQL Server Compact データベースと同様に接続できます。
SQL Server Compact 3.5 の SP1 リリースでは、データベース照合順序で大文字と小文字を区別するかどうかを指定する Boolean 型の新しい接続文字列プロパティ "Case Sensitive" (または "SSCE:Case Sensitive") がサポートされています。既存の SQL Server Compact データベースに、接続文字列で "Case Sensitive" プロパティを指定して接続しようとすると、SQL Server Compact 3.5 SP1 ではこの設定が無視されます。つまり、"Case Sensitive" プロパティはデータベース作成時オプションであり、既存のデータベースへの接続時には無視されます。データベースの作成時に照合順序を指定しなかった場合、既定では大文字と小文字が区別されるデータベースが作成されます。
Case Sensitive プロパティは SQL Server Compact 3.5 SP1 の新機能であり、以前のバージョンではサポートされません。
大文字と小文字が区別されるデータベースの作成
SQL Server Compact 3.5 の SP1 リリースでは、新しいデータベースの大文字と小文字を区別する照合順序を API 呼び出しでのみ指定できます。
Boolean 型の新しい接続文字列プロパティ "Case Sensitive" (または "SSCE:Case Sensitive") を使用して、データベース照合順序で大文字と小文字を区別するかどうかを指定できます。同様に、新しいプロパティ DBPROP_SSCE_DBCASESENSITIVE を DBPROPSET_SSCE_DBINIT プロパティ セットの一部として指定しても、データベース照合順序で大文字と小文字を区別するかどうかを指定できます。
Case Sensitive を true に設定すると、文字列の列のインデックスがデータベースで再構築されます。
CREATE DATABASE (SQL Server Compact) ステートメントの COLLATE (SQL Server Compact) 句を使用して新しいデータベースの照合順序を指定する方法もあります。この場合、使用できるオプションは CI (大文字と小文字を区別しない) オプションのみです。
重要 : |
---|
照合順序で大文字と小文字を区別するデータベースを作成した場合、そのデータベースを以前のリリースの SQL Server Compact (SQL Server Compact 3.5 など) で開くことはできません。 |
マージ レプリケーションおよび大文字と小文字を区別する照合順序
SQL Server パブリッシャおよび SQL Server Compact サブスクライバでは、大文字と小文字の区別に関する設定に関係なく、マージ レプリケーションがサポートされます。旧バージョンとの互換性をサポートするために、どのシナリオも明示的にブロックされません。
SQL Server Compact 3.5 の SP1 リリースでは、大文字と小文字が区別される SQL Server Compact データベースのレプリケーションが、大文字と小文字が区別されるサーバー データベースと区別されないサーバー データベースの両方に対してサポートされます。次の表に、想定されるすべてのシナリオを示します。
SQL Server Compact クライアント データベースでの大文字と小文字の区別 | SQL Server データベースでの大文字と小文字の区別 | サポート |
---|---|---|
CI (大文字と小文字を区別しない) |
CI |
○ |
CI |
CS (大文字と小文字を区別する) |
○ |
CS |
CS |
○ |
CS |
CI |
○ |
マージ レプリケーションの詳細については、「マージ レプリケーションの使用」を参照してください。Replication オブジェクトを使用して大文字と小文字が区別されるデータベースを作成する方法の詳細については、「Replication オブジェクトを使用してデータベースを作成する方法 (プログラム)」を参照してください。
参照
概念
国際化に関する注意点 (SQL Server Compact)