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
Vorsicht:
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.
- So verwenden Sie die gespeicherte Prozedur sp_addmergepublication
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.