パブリケーション データベースでのスキーマの変更 (SQL Server Compact Edition)

パブリケーションを削除して作成し直さなくても、Microsoft SQL Server のパブリケーションでパブリッシュされたテーブルに列を追加したり削除したりすることができます。パブリッシュされた SQL Server テーブルに列を追加したり削除する場合、そのスキーマの変更は、サブスクリプションの次回同期時に SQL Server 2005 Compact Edition (SQL Server Compact Edition) のサブスクリプション データベースにパブリッシュされます。詳細については、SQL Server Books Online の「パブリケーション データベースでのスキーマの変更」を参照してください。

重要   パブリッシャで計算列を追加するなどのスキーマの変更を行うと、SQL Server Compact Edition サブスクライバによる同期が失敗する場合があります。パブリッシャでスキーマの変更を行う前に、SQL Server Compact Edition のスキーマの制限事項をすべて確認してください。

アーティクルの削除

SQL Server パブリケーションから列を削除すると、対応する SQL Server Compact Edition サブスクリプション データベースの列のデータに行われた変更のうちパブリッシャに反映されていない変更は、同期中に破棄されます。アーティクルを削除すると、次のルールが適用されます。

  • パブリケーション互換性レベルが 90 RTM 以上である場合、SQL Server Compact Edition サブスクリプションを強制的に再初期化しなくてもアーティクルを削除できます。
    パブリケーション互換性レベルが 90 RTM 未満の場合、エラーが生成されるので、サブスクリプションを再初期化する必要があります。
  • パブリケーションをデータベースから削除する前に、sp_dropmergearticle を使用してパブリケーションからアーティクルを削除する必要があります。
    sp_dropmergearticle を使用してアーティクルを削除すると、アーティクルはデータベースから自動的に削除されません。アーティクルはその後もレプリケートされないローカル テーブルとして存在します。

アーティクルの追加

アーティクルを既存のパブリケーションに追加することもできます。アーティクルを追加すると、次のルールが適用されます。

  • パブリケーション互換性レベルが 90 RTM 以上である場合、SQL Server Compact Edition サブスクリプションを強制的に再初期化しなくてもアーティクルを追加できます。
    パブリケーション互換性レベルが 90 RTM 未満の場合、エラーが生成されるので、サブスクリプションを再初期化する必要があります。
  • パブリケーションにテーブルを追加する前に、まずはデータベースにテーブルを追加する必要があります。
  • アーティクルは、sp_addmergearticle を使用してパブリケーションに追加されます。
  • サブスクリプションに追加したテーブルには、パブリケーションにも存在する他のアーティクルに対する制約を含めることができます。
    たとえば、パブリケーションに Employees、Customers、および Orders テーブルが含まれているとします。後でパブリケーションに OrderDetails テーブルを追加します。OrderDetails テーブルには、Orders テーブルへの外部キー制約を含めることができます。
重要 :
パブリッシュされた既存の SQL Server テーブルに追加された列が ID 列の場合、SQL Server Compact Edition サブスクライバを再初期化する必要があります。

参照

ヘルプおよび情報

SQL Server Compact Edition のサポートについて