Sync Framework でサポートされるデータベース オブジェクト
このトピックでは、データベース オブジェクトの同期に関する Sync Framework のサポートについて説明します。
ピア ツー ピアの同期
DbSyncProvider では、テーブルの同期をサポートしています。Sales.Customer などのスキーマ修飾オブジェクトがサポートされます (この場合は、Customer テーブルが Sales というスキーマまたは所有者で修飾されています)。
ピア ツー ピアの同期では、ピア データベースの自動初期化は行われません。そのため、同期中にピア データベースにテーブルはコピーされません。ピアの初期化の詳細については、「コラボレーション同期を構成して実行する方法 (SQL Server 以外)」の「サーバー データベースの初期化」を参照してください。
クライアントとサーバーの同期
DbServerSyncProvider では、すべての種類の同期で、サーバー データベースのテーブルをサポートしています。スナップショットおよびダウンロードのみの同期では、ビューをサポートします。クライアントの 1 つのテーブルには、サーバーの複数のテーブルからデータを含めることができます。詳細については、「クライアントでデータ ビューを作成する方法」を参照してください。
サーバーでのデータの格納方法または表示方法に関係なく、SQL Server Compact は、クライアントのテーブルにデータを格納します。
SQL Server Compact では、Sales.Customer などのスキーマ修飾オブジェクトがサポートされません (この場合は、Customer テーブルが Sales というスキーマまたは所有者で修飾されています)。AdventureWorks サンプル データベースから Sales.Customer テーブルを同期する場合、Customer という値を TableName に指定します。
既定では、クライアント データベースには、FOREIGN KEY 制約、UNIQUE 制約、DEFAULT 制約、および SQL Server ROWGUIDCOL プロパティというオブジェクトがコピーされません。クライアント データベースにこれらのオブジェクトが必要である場合は、SQL を使用してこれらを追加するか、SyncSchema オブジェクトにこれらを追加します。詳細については、「クライアント データベースを初期化してテーブル スキーマを操作する方法」を参照してください。
Sync Framework では、大文字と小文字を区別する照合順序がサーバー上でサポートされますが、次の制限事項があります。
主キー列、および一意なインデックスまたは制約を持つ列は、VALUE1 と value1 のように大文字/小文字のみが異なる値を含むことはできません。
TABLE1 と table1 のように大文字/小文字のみが異なるデータベース オブジェクトの同期はサポートされていません。
サーバー上のデータベースを、複数の同期セッションに参加させることができます。ただし、データベース内のオブジェクトが一度に参加できるのは、1 つのクライアントとの同期セッションのみです。テーブルの同期中に、そのテーブルに対して Synchronize メソッドを再度呼び出すと、Sync Framework によって例外がスローされます。クライアント データベースでは、一度に 1 つの同期セッションしかサポートされません。