Steuern von Einschränkungen, Identitäten und Triggern mithilfe von NOT FOR REPLICATION

Aktualisiert: 15. September 2007

In einigen Fällen ist es in einer Replikationstopologie vorteilhaft, wenn die Benutzeraktivität anders behandelt wird als die Agentaktivität. Beispiel: Eine Zeile wird von einem Benutzer auf dem Verleger eingefügt, und diese Einfügung erfüllt eine CHECK-Einschränkung für die Tabelle. Es ist dann gegebenenfalls nicht erforderlich, dieselbe Einschränkung zu erzwingen, wenn die Zeile von einem Replikations-Agent auf dem Abonnenten eingefügt wird. Mithilfe der Option NOT FOR REPLICATION können Sie angeben, dass die folgenden Datenbankobjekte unterschiedlich behandelt werden, wenn ein Replikations-Agent einen Vorgang ausführt:

  • FOREIGN KEY-Einschränkungen
    Bei Einfügungs-, Aktualisierungs- oder Löschvorgängen durch den Replikations-Agent wird die FOREIGN KEY-Einschränkung nicht erzwungen.
  • CHECK-Einschränkungen
    Bei Einfügungs-, Aktualisierungs- oder Löschvorgängen durch den Replikations-Agent wird die CHECK-Einschränkung nicht erzwungen.
  • Identitätsspalten
    Der Wert der Identitätsspalte wird nicht inkrementiert, wenn ein Replikations-Agent einen Einfügungsvorgang ausführt.
  • Trigger
    Bei Einfügungs-, Aktualisierungs- oder Löschvorgängen durch den Replikations-Agent wird die CHECK-Einschränkung nicht erzwungen.

Beim Veröffentlichen einer Tabelle steuern Schemaoptionen, wie Objekte in der Abonnementdatenbank erstellt werden. Die Standardschemaoptionen sind je nach Veröffentlichung verschieden. Wenn durch Optionen angegeben wird, dass FOREIGN KEY-Einschränkungen und CHECK-Einschränkungen in der Abonnementdatenbank erstellt werden, wird die Option NOT FOR REPLICATION festgelegt. Die Option NOT FOR REPLICATION wird auch festgelegt, wenn Identitätsspalten in Mergepublikationen und Transaktionspublikationen repliziert werden, die aktualisierbare Abonnements unterstützen. Weitere Informationen zur Replikation von Identitätsspalten finden Sie unter Replizieren von Identitätsspalten.

In den meisten Fällen sind die Standardeinstellungen zweckdienlich, sie können jedoch den Anforderungen der Anwendung entsprechend geändert werden. Am meisten zu berücksichtigen sind Trigger. Wenn Sie z. B. einen INSERT-Trigger definieren und die Option NOT FOR REPLICATION festgelegt ist, werden bei allen Einfügungen von Benutzern Trigger ausgelöst, nicht jedoch bei Einfügungen von Replikations-Agents. Angenommen, ein Trigger fügt Daten in eine Nachverfolgungstabelle ein: Wenn der Benutzer die ursprüngliche Zeile einfügt, muss der Trigger ausgelöst werden und eine Zeile in die Nachverfolgungstabelle eintragen. Der Trigger sollte jedoch nicht ausgelöst werden, wenn diese Daten auf dem Abonnenten repliziert werden, da sonst eine überflüssige Zeile in die Nachverfolgungstabelle eingefügt wird.

So geben Sie die Option NOT FOR REPLICATION an

Sie haben folgende Möglichkeiten, die Option NOT FOR REPLICATION anzugeben:

Siehe auch

Konzepte

Überlegungen zu allen Replikationstypen

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

15. September 2007

Geänderter Inhalt:
  • Es wurde erklärt, wann die Option NOT FOR REPLICATION festgelegt wird.