Einschränkungen bei der Replikation

Wenn Sie die Mergereplikation mit Abonnenten von Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5 ) verwenden, gibt es verschiedene Einschränkungen beim Veröffentlichen. In diesem Abschnitt werden diese Einschränkungen beschrieben.

Einschränkungen bei Schemaänderungen auf dem Abonnenten

Sie können einige Schemaänderungen auf dem Abonnenten vornehmen, jedoch nicht alle. In der folgenden Tabelle werden die möglichen Schemaänderungen beschrieben, die auf dem Abonnenten ausgeführt bzw. nicht ausgeführt werden können.

Aktion Zulässig für eine replizierte Tabelle

Tabelle löschen

Nein

Tabelle umbenennen

Nein

Spalte hinzufügen, löschen oder entfernen

Nein

Ausgangswert oder Inkrementwert in einer Identitätsspalte ändern

Ja

Standard hinzufügen oder löschen

Ja

Primärschlüssel hinzufügen oder löschen

Nein

Fremdschlüssel hinzufügen oder löschen

Nein

Index hinzufügen oder löschen

ms171864.Caution(de-de,SQL.100).gifVorsicht:
Indizes für Replikationsspalten von Benutzertabellen sollten nicht hinzugefügt oder gelöscht werden. Dies führt zu Fehlern bei der Synchronisierung, da Replikationsspalten wie Systemspalten behandelt werden.

Ja

Index umbenennen

Ja

Wichtig

Schemaänderungen können nicht in Systemtabellen vorgenommen werden.

Zusätzliche Anforderungen

Die folgenden Regeln gelten für SQL Server Compact 3.5 -Abonnenten:

  • Arbeitsspeicherverbrauch
    Nachdem die Neuinitialisierung angefordert wurde, kann während der Synchronisierung die SQL Server Compact 3.5 -Datenbank vorübergehend auf die doppelte Größe der tatsächlichen Datenbank anwachsen, sie wird jedoch nach Abschluss der Synchronisierung wieder verkleinert (basierend auf den jeweiligen Richtlinien für die automatische Verkleinerung.)

  • Abonnementfilterüberprüfung
    Die Filterüberprüfung ermöglicht es dem Verleger, den Filterwert eines Abonnenten vor dem Synchronisieren der Daten zu überprüfen. Wenn sich der Filterwert auf dem Abonnenten geändert hat, erfordert der Verleger eine Neuinitialisierung auf dem Abonnenten. Beim Synchronisieren von Daten mit SQL Server 2008 kann SQL Server Compact 3.5 die Filterüberprüfung verwenden.

    Hinweis

    Die HostName -Eigenschaft gibt den Wert des dynamischen Filters für das Abonnement an. Wenn Sie den Wert des dynamischen Filters für den Abonnenten durch Angeben einer neuen HostName -Eigenschaft ändern möchten, müssen Sie vor dem Synchronisieren die Reinitialize -Methode aufrufen.

  • Unterscheidung von Groß-/Kleinschreibung
    Seit der Version SQL Server Compact 3.5 Service Pack 1 unterstützt SQL Server Compact das Festlegen von Sortierungen auf Datenbankebene, bei denen die Groß-/Kleinschreibung berücksichtigt wird. Für Objektnamen, wie Tabellennamen, Schlüsselwörter der Sprache, Funktionen und Sichten, wird jedoch in einer SQL Server Compact-Datenbank die Groß-/Kleinschreibung auch dann nicht berücksichtigt, wenn die Groß-/Kleinschreibung bei der Sortierung berücksichtigt wird.
    Das heißt, dass Objekte in einer SQL Server Compact-Datenbank anders behandelt werden als in einer SQL Server-Datenbank. Beispielsweise werden die beiden Tabellen MYTABLE und mytable in einer SQL Server -Datenbank, bei der nach Groß- und Kleinschreibung unterschieden wird, als unterschiedliche Objekte behandelt. Die selben Tabellennamen verursachen in einer SQL Server Compact-Datenbank einen Namenskonflikt. Andererseits verursachen die beiden Werte MYVALUE und myvalue in SQL Server Compact keine Primärschlüsselverletzung mehr, da sie, wie in einer SQL Server-Datenbank, bei der nach Groß- und Kleinschreibung unterschieden wird, als unterschiedliche Werte behandelt werden.

  • Anzahl der Spalten in einer Tabelle
    SQL Server Compact 3.5 stellt sieben Systemspalten für die Nachverfolgung bereit. Diese Systemtabellen werden jedoch nicht auf das Spaltenlimit angerechnet.

  • NOT FOR REPLICATION-Einschränkungen
    SQL Server Compact 3.5 unterstützt die Option NOT FOR REPLICATION nicht. Erstellen Sie mit dieser Option keine Einschränkungen. Falls Einschränkungen in einer Datenbank über die Option NOT FOR REPLICATION verfügen, entfernen Sie die Einschränkung, und erstellen Sie sie anschließend neu. Bei Angabe der Option NOT FOR REPLICATION wird die Einschränkung zwar auf dem SQL Server Compact 3.5 -Abonnenten erstellt, sie enthält jedoch keine NOT FOR REPLICATION-Syntax.

  • Verbindungstimeout
    SQL Server Compact 3.5 -Abonnements werden nach Kommunikationsfehlern wiederhergestellt. Dabei wird mit dem letzten erfolgreich übermittelten Datenblock begonnen. Die Voraussetzung ist, dass die Verbindung innerhalb des vom Benutzer konfigurierbaren Timeoutzeitraums wiederhergestellt wird. Auf diese Weise ist eine Synchronisierung möglich, selbst wenn die zugrunde liegende Transportsoftware unzuverlässig oder vorübergehend nicht verfügbar ist.

  • Snapshots
    SQL Server Compact 3.5 unterstützt sowohl die standardmäßige als auch die alternative Option für den Snapshotspeicherort. Zum Angeben eines alternativen Snapshotspeicherorts können Sie diese Option festlegen, indem Sie entweder die gespeicherte Prozedur sp_addmergepublication verwenden oder mithilfe von SQL Server Management Studio die Eigenschaften einer vorhandenen Veröffentlichung ändern.

    • So verwenden Sie die gespeicherte Prozedur sp_addmergepublication
      Legen Sie die Option @snapshot_in_defaultfolder auf FALSE fest, und geben Sie für @alt_snapshot_folder den Speicherort des alternativen Ordners für den Snapshot an.
    • So ändern Sie die Veröffentlichungseigenschaften einer vorhandenen Veröffentlichung
      Deaktivieren Sie im Abschnitt Snapshot des Dialogfelds Eigenschaften für die Veröffentlichung das Kontrollkästchen Dateien im Standardordner speichern , aktivieren Sie das Kontrollkästchen Dateien im folgenden Ordner speichern , und geben Sie dann den neuen Speicherort an.

    Hinweis

    SQL Server Compact 3.5 unterstützt die Option für komprimierte Snapshots nicht.

Weitere Informationen zu Snapshots finden Sie unter Konfigurieren des Snapshotordners .

Informationen, die nicht an einen Abonnenten von SQL Server Compact 3.5 weitergegeben werden

Sie können die folgenden Elemente in eine SQL Server -Veröffentlichung einfügen, sie werden jedoch nicht an den SQL Server Compact 3.5 -Abonnenten weitergegeben:

  • CHECK-Einschränkungen
  • Erweiterte Eigenschaften
  • Gespeicherte Prozeduren
  • Sichten
  • Benutzerdefinierte Funktionen
  • Trigger

Da die SQL Server Compact 3.5 -Replikation diese Elemente nicht weitergeben kann, müssen Sie äquivalente Logik in eine SQL Server Compact 3.5 -basierte Anwendung implementieren. Dadurch stellen Sie sicher, dass die SQL Server Compact 3.5 -Datenbank mit der SQL Server -Datenbank konsistent bleibt. Wenn die SQL Server -Datenbank z. B. eine CHECK-Einschränkung einschließt, muss die SQL Server Compact 3.5 -basierte Anwendung die entsprechende Überprüfung im Anwendungscode implementieren.

Erstellen von Indizes für eine lokale Datenbank von SQL Server Compact 3.5

Sie können eindeutige Indizes für eine lokale SQL Server Compact 3.5 -Datenbank erstellen, selbst wenn diese Datenbank Abonnent einer Veröffentlichung ist. Dies ist hilfreich, kann jedoch zu Problemen führen, wenn der Verleger, der keine UNIQUE-Einschränkung für eine Spalte aufweist, nicht eindeutige Daten an den Abonnenten sendet. Beispiel: Eine Tabelle T enthält die Spalten C1 und C2, und der Primärschlüssel befindet sich in C1.

C1

C2

A

1

B

2

C

3

Für die SQL Server Compact 3.5 -Datenbank findet eine Erstsynchronisierung statt. Nach dieser Synchronisierung wird ein eindeutiger Index C2 in der Abonnementdatenbank hinzugefügt. An der Veröffentlichungsdatenbank werden keine Änderungen vorgenommen.

Während der nächsten Synchronisierung fügt SQL Server folgende Zeilen ein:

D

3

E

3

In diesem Fall tritt ein Fehler bei der Synchronisierung auf, da der Verleger versucht hat, nicht eindeutige Werte für C2 einzufügen. Bei der Synchronisierung werden weiterhin Fehler auftreten, bis die UNIQUE-Einschränkung aus der Abonnementdatenbank entfernt wird.