sp_addpublication (Transact-SQL)

Erstellt eine Snapshot- oder Transaktionsveröffentlichung. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addpublication [ @publication = ] 'publication'
    [ , [ @taskid = ] tasked ]
    [ , [ @restricted = ] 'restricted' ]
    [ , [ @sync_method = ] 'sync_method' ]
    [ , [ @repl_freq = ] 'repl_freq' ]
    [ , [ @description = ] 'description' ]
    [ , [ @status = ] 'status' ]
    [ , [ @independent_agent = ] 'independent_agent' ]
    [ , [ @immediate_sync = ] 'immediate_sync' ]
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ]
    [ , [ @allow_push = ] 'allow_push'
    [ , [ @allow_pull = ] 'allow_pull' ]
    [ , [ @allow_anonymous = ] 'allow_anonymous' ]
    [ , [ @allow_sync_tran = ] 'allow_sync_tran' ]
    [ , [ @autogen_sync_procs = ] 'autogen_sync_procs' ]
    [ , [ @retention = ] retention ]
    [ , [ @allow_queued_tran= ] 'allow_queued_updating' ]
    [ , [ @snapshot_in_defaultfolder= ] 'snapshot_in_default_folder' ]
    [ , [ @alt_snapshot_folder= ] 'alternate_snapshot_folder' ]
    [ , [ @pre_snapshot_script= ] 'pre_snapshot_script' ]
    [ , [ @post_snapshot_script= ] 'post_snapshot_script' ]
    [ , [ @compress_snapshot= ] 'compress_snapshot' ]
    [ , [ @ftp_address = ] 'ftp_address' ]
    [ , [ @ftp_port= ] ftp_port ]
    [ , [ @ftp_subdirectory = ] 'ftp_subdirectory' ]
    [ , [ @ftp_login = ] 'ftp_login' ]
    [ , [ @ftp_password = ] 'ftp_password' ]
    [ , [ @allow_dts = ] 'allow_dts' ]
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ]
    [ , [ @conflict_policy = ] 'conflict_policy' ]
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
    [ , [ @conflict_retention = ] conflict_retention ]
    [ , [ @queue_type = ] 'queue_type' ]
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ]
    [ , [ @logreader_job_name = ] 'logreader_agent_name' ]
    [ , [ @qreader_job_name = ] 'queue_reader_agent_name' ]
    [ , [ @publisher = ] 'publisher' ] 
    [ , [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @enabled_for_p2p = ] 'enabled_for_p2p' ]
    [ , [ @publish_local_changes_only = ] 'publish_local_changes_only' ]
    [ , [ @enabled_for_het_sub = ] 'enabled_for_het_sub' ]
    [ , [ @p2p_conflictdetection = ] 'p2p_conflictdetection' ]
    [ , [ @p2p_originator_id = ] p2p_originator_id
    [ , [ @p2p_continue_onconflict = ] 'p2p_continue_onconflict'
    [ , [ @allow_partition_switch = ] 'allow_partition_switch'
    [ , [ @replicate_partition_switch = ]'replicate_partition_switch'

Argumente

  • [ @publication=] 'publication'
    Der Name der zu erstellenden Veröffentlichung. publication ist vom Datentyp sysname und hat keinen Standardwert. Dieser Name muss innerhalb der Datenbank eindeutig sein.

  • [ @taskid=] taskid
    Wird nur aus Gründen der Abwärtskompatibilität unterstützt; verwenden Sie sp_addpublication_snapshot (Transact-SQL).

  • [ @restricted=] 'restricted'
    Wird nur aus Gründen der Abwärtskompatibilität unterstützt; verwenden Sie default_access.

  • [ @sync_method=] 'sync_method**'**
    Der Synchronisierungsmodus. sync_method ist vom Datentyp nvarchar(13). Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    native

    Erstellt eine Massenkopierprogramm-Ausgabe aller Tabellen im systemeigenen Modus. Wird nicht für Oracle-Verleger unterstützt.

    character

    Erstellt eine Massenkopierprogramm-Ausgabe aller Tabellen im Zeichenmodus. Für einen Oracle-Verleger istcharacter nur für die Snapshotreplikation gültig.

    concurrent

    Erzeugt eine Massenkopierprogramm-Ausgabe aller Tabellen im systemeigenen Modus, sperrt jedoch die Tabellen während der Erstellung des Snapshots nicht. Wird nur für Transaktionsveröffentlichungen unterstützt. Wird nicht für Oracle-Verleger unterstützt.

    concurrent_c

    Erzeugt eine Massenkopierprogramm-Ausgabe aller Tabellen im Zeichenmodus, sperrt jedoch die Tabellen während der Erstellung des Snapshots nicht. Wird nur für Transaktionsveröffentlichungen unterstützt.

    database snapshot

    Erstellt aus einem Datenbanksnapshot eine Massenkopierprogramm-Ausgabe aller Tabellen im systemeigenen Modus. Für diese Option ist SQL Server Enterprise erforderlich.

    database snapshot character

    Erstellt aus einem Datenbanksnapshot eine Massenkopierprogramm-Ausgabe aller Tabellen im Zeichenmodus. Für diese Option ist SQL Server Enterprise erforderlich.

    NULL (Standard)

    Ist für MicrosoftSQL Server-Verleger standardmäßig gleichbedeutend mit native. Ist für Nicht-SQL Server-Verleger standardmäßig gleichbedeutend mit character, wenn repl_freq den Wert Snapshot hat, und ist in allen anderen Fällen standardmäßig gleichbedeutend mit concurrent_c.

  • [ @repl_freq=] 'repl_freq'
    Der Typ der Replikationshäufigkeit. repl_freq ist vom Datentyp nvarchar(10) und kann einen der folgenden Werte annehmen.

    Wert

    Beschreibung

    continuous (Standard)

    Der Verleger stellt die Ausgabe aller protokollbasierten Transaktionen bereit. Für Nicht-SQL Server-Verleger muss hierfür sync_method auf concurrent_c festgelegt werden.

    snapshot

    Der Verleger gibt nur geplante Synchronisierungsereignisse aus. Für Nicht-SQL Server-Verleger muss hierfür sync_method auf character festgelegt werden.

  • [ @description=] 'description'
    Eine optionale Beschreibung der Veröffentlichung. description ist vom Datentyp nvarchar(255), der Standardwert ist NULL.

  • [ @status=] 'status'
    Gibt an, ob Veröffentlichungsdaten verfügbar sind. status ist vom Datentyp nvarchar(8). Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    active

    Die Veröffentlichungsdaten sind für Abonnenten sofort verfügbar.

    inactive (Standard)

    Die Veröffentlichungsdaten sind für Abonnenten zunächst nicht verfügbar, wenn die Veröffentlichung erstellt wird (die Abonnierung ist möglich, aber die Abonnements werden nicht verarbeitet).

    Wird nicht für Oracle-Verleger unterstützt.

  • [ @independent_agent=] 'independent_agent'
    Gibt an, ob ein eigenständiger Verteilungs-Agent für diese Veröffentlichung vorhanden ist. independent_agent ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Bei true ist ein eigenständiger Verteilungs-Agent für diese Veröffentlichung vorhanden. Bei false verwendet die Veröffentlichung einen freigegebenen Verteilungs-Agent, und jedes Paar aus Verlegerdatenbank und Abonnentendatenbank besitzt einen einzelnen, freigegebenen Agent.

  • [ @immediate_sync=] 'immediate_synchronization'
    Gibt an, ob die Synchronisierungsdateien für die Veröffentlichung bei jeder Ausführung des Snapshot-Agents erstellt werden. immediate_synchronization ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Bei true werden die Synchronisierungsdateien bei jeder Ausführung des Snapshot-Agents erstellt oder neu erstellt. Abonnenten können die Synchronisierungsdateien sofort abrufen, wenn der Snapshot-Agent vor dem Erstellen des Abonnements abgeschlossen wurde. Neue Abonnements rufen die neuesten Synchronisierungsdateien ab, die von der letzten Ausführung des Snapshot-Agents generiert wurden. independent_agent muss ebenfalls den Wert true haben, wenn immediate_synchronization den Wert true haban soll. Bei false werden die Synchronisierungsdateien nur erstellt, wenn neue Abonnements vorhanden sind. Beim inkrementellen Hinzufügen eines neuen Artikels zu einer vorhandenen Veröffentlichung muss für jedes Abonnement sp_addsubscription aufgerufen werden. Abonnenten können die Synchronisierungsdateien nach dem Einrichten des Abonnements erst empfangen, wenn die Snapshot-Agents gestartet und abgeschlossen wurden.

  • [ @enabled_for_internet=] 'enabled_for_internet'
    Gibt an, ob die Veröffentlichung für das Internet aktiviert ist, und bestimmt, ob für die Übermittlung der Snapshotdateien an einen Abonnenten FTP (File Transfer Protocol) verwendet werden kann. enabled_for_internet ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Bei einem Wert von true werden die Synchronisierungsdateien für die Veröffentlichung im Verzeichnis C:\Programme\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp gespeichert. Der Benutzer muss das Verzeichnis Ftp erstellen.

  • [ @allow_push=] 'allow_push'
    Gibt an, ob Pushabonnements für die angegebene Veröffentlichung erstellt werden können. allow_push ist vom Datentyp nvarchar(5), der Standardwert ist TRUE, womit Pushabonnements für die Veröffentlichung zulässig sind.

  • [ @allow_pull=] 'allow_pull'
    Gibt an, ob Pullabonnements für die Veröffentlichung erstellt werden können. allow_pull ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Bei false sind keine Pullabonnements für die Veröffentlichung zulässig.

  • [ @allow_anonymous=] 'allow_anonymous'
    Gibt an, ob anonyme Abonnements für die Veröffentlichung erstellt werden können. allow_anonymous ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Bei true muss immediate_synchronization ebenfalls auf true festgelegt werden. Bei false sind keine anonymen Abonnements für die Veröffentlichung zulässig.

  • [ @allow_sync_tran=] 'allow_sync_tran'
    Gibt an, ob Abonnements mit sofortiger Aktualisierung für die Veröffentlichung zulässig sind. allow_sync_tran ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. truewird nicht für Oracle-Verleger unterstützt.

  • [ @autogen_sync_procs=] 'autogen_sync_procs'
    Gibt an, ob die gespeicherte Prozedur zur Synchronisierung von Abonnements mit Aktualisierung auf dem Verleger generiert wird. autogen_sync_procs ist vom Datentyp nvarchar(5) und kann einen der folgenden Werte annehmen.

    Wert

    Beschreibung

    true

    Wird automatisch festgelegt, wenn das Aktualisieren von Abonnements aktiviert ist.

    false

    Wird automatisch für Oracle-Verleger festgelegt oder wenn das Aktualisieren von Abonnements nicht aktiviert ist.

    NULL (Standard)

    Ist standardmäßig true, wenn das Aktualisieren von Abonnements aktiviert ist, und false, wenn das Aktualisieren von Abonnements nicht aktiviert ist.

    HinweisHinweis

    Der vom Benutzer angegebene Wert für autogen_sync_procswird abhängig von den für allow_queued_tran und allow_sync_tran angegebenen Werten außer Kraft gesetzt.

  • [ @retention=] retention
    Die Beibehaltungsdauer in Stunden für Abonnementaktivitäten. retention ist vom Datentyp int, der Standardwert ist 336 Stunden. Wenn ein Abonnement im Beibehaltungszeitraum nicht aktiv ist, läuft es ab und wird entfernt. Der Wert kann größer als die maximale Beibehaltungsdauer der vom Verleger verwendeten Verteilungsdatenbank sein. Wenn dieser Wert 0 ist, laufen bekannte Abonnements der Veröffentlichung nie ab. Sie werden also nicht vom Agent für das Cleanup abgelaufener Abonnements entfernt.

  • [ @allow_queued_tran= ] 'allow_queued_updating'
    Aktiviert oder deaktiviert das Speichern von Änderungen auf dem Abonnenten in einer Warteschlange, bis die Änderungen auf dem Verleger angewendet werden können. allow_queued_updating ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Bei false werden Änderungen auf dem Abonnenten nicht in einer Warteschlange gespeichert. true wird nicht für Oracle-Verleger unterstützt.

  • [ @snapshot_in_defaultfolder= ] 'snapshot_in_default_folder'
    Gibt an, ob die Snapshotdateien im Standardordner gespeichert werden. snapshot_in_default_folder ist vom Datentyp nvarchar(5), der Standardwert ist TRUE. Bei true befinden sich die Snapshotdateien im Standardordner. Bei false wurden die Snapshotdateien an dem durch alternate_snapshot_folder angegebenen alternativen Speicherort gespeichert. Alternative Speicherorte können sich auf einem anderen Server, auf einem Netzlaufwerk oder auf Wechselmedien befinden (z. B. auf CD-ROM oder auf einem Wechseldatenträger). Snapshotdateien können auch auf einer FTP-Site gespeichert werden, um zu einem späteren Zeitpunkt vom Abonnenten abgerufen zu werden. Beachten Sie, dass dieser Parameter den Wert TRUE besitzen kann und dennoch ein Speicherort im @alt_snapshot_folder-Parameter angegeben werden kann. Diese Kombination gibt an, dass die Snapshotdateien sowohl im Standard- als auch im alternativen Pfad gespeichert werden.

  • [ @alt_snapshot_folder= ] 'alternate_snapshot_folder'
    Gibt den Speicherort des alternativen Ordners für den Snapshot an. alternate_snapshot_folder ist vom Datentyp nvarchar(255) und hat den Standardwert NULL.

  • [ @pre_snapshot_script= ] 'pre_snapshot_script'
    Gibt einen Zeiger auf einen Speicherort für SQL-Dateien an. pre_snapshot_script ist vom Datentyp nvarchar(255), der Standardwert ist NULL. Der Verteilungs-Agent führt das vor dem Snapshot ausgeführte Skript vor allen Skripts für replizierte Objekte aus, wenn der Snapshot bei einem Abonnenten angewendet wird. Das Skript wird beim Herstellen der Verbindung mit der Abonnementdatenbank in dem vom Verteilungs-Agent verwendeten Sicherheitskontext ausgeführt.

  • [ @post_snapshot_script= ] 'post_snapshot_script'
    Gibt einen Zeiger auf einen Speicherort für SQL-Dateien an. post_snapshot_script ist vom Datentyp nvarchar(255), der Standardwert ist NULL. Der Verteilungs-Agent führt das nach dem Snapshot ausgeführte Skript aus, nachdem alle anderen Skripts für replizierte Objekte und Daten während der Erstsynchronisierung angewendet wurden. Das Skript wird beim Herstellen der Verbindung mit der Abonnementdatenbank in dem vom Verteilungs-Agent verwendeten Sicherheitskontext ausgeführt.

  • [ @compress_snapshot= ] 'compress_snapshot'
    Gibt an, dass der Snapshot, der an den Speicherort @alt_snapshot_folder geschrieben wird, in das Microsoft CAB-Format komprimiert werden soll. compress_snapshot ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Durch false wird angegeben, dass der Snapshot nicht komprimiert wird. Durch true wird angegeben, dass der Snapshot komprimiert wird. Snapshotdateien, die größer als 2 Gigabyte (GB) sind, können nicht komprimiert werden. Komprimierte Snapshotdateien werden an dem Speicherort dekomprimiert, an dem der Verteilungs-Agent ausgeführt wird. Pullabonnements werden normalerweise mit komprimierten Snapshots verwendet, sodass die Dateien auf dem Abonnenten dekomprimiert werden. Der Snapshot im Standardordner kann nicht komprimiert werden.

  • [ @ftp_address = ] 'ftp_address'
    Die Netzwerkadresse des FTP-Diensts für den Verteiler. ftp_address ist vom Datentyp sysname, der Standardwert ist NULL. Gibt an, wo die Veröffentlichungssnapshotdateien für den Verteilungs-Agent oder Merge-Agent eines Abonnenten zum Abholen gespeichert sind. Da diese Eigenschaft für jede Veröffentlichung gespeichert wird, kann jede Veröffentlichung einen unterschiedlichen Wert für ftp_address besitzen. Die Veröffentlichung muss die Weitergabe von Snapshots über FTP unterstützen.

  • [ @ftp_port= ] ftp_port
    Die Portnummer des FTP-Diensts für den Verteiler. ftp_port hat den Datentyp int und den Standardwert 21. Gibt an, wo die Veröffentlichungssnapshotdateien für den Verteilungs-Agent oder Merge-Agent eines Abonnenten zum Abholen gespeichert sind. Da diese Eigenschaft für jede Veröffentlichung gespeichert wird, kann jede Veröffentlichung einen eigenen Wert für ftp_port besitzen.

  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    Gibt an, wo die Snapshotdateien zum Abholen durch den Verteilungs-Agent oder Merge-Agent des Abonnenten bereitgestellt werden, wenn die Veröffentlichung die Weitergabe von Snapshots über FTP unterstützt. ftp_subdirectory hat den Datentyp nvarchar(255) und den Standardwert NULL. Da diese Eigenschaft für jede Veröffentlichung gespeichert wird, kann jede Veröffentlichung ihren eigenen Wert für ftp_subdirctory besitzen oder aber keine Unterverzeichnisse verwenden. Dies wird durch den Wert NULL angezeigt.

  • [ @ftp_login = ] 'ftp_login'
    Der Benutzername, der für die Verbindung mit dem FTP-Dienst verwendet wird. ftp_login ist vom Datentyp sysname, der Standardwert ist ANONYMOUS.

  • [ @ftp_password = ] 'ftp_password'
    Das Benutzerkennwort, mit dem eine Verbindung mit dem FTP-Dienst hergestellt wird. ftp_password ist vom Datentyp sysname, der Standardwert ist NULL.

  • [ @allow_dts = ] 'allow_dts'
    Gibt an, dass die Veröffentlichung Datentransformationen zulässt. Sie können beim Erstellen eines Abonnements ein DTS-Paket angeben. allow_transformable_subscriptions ist vom Datentyp nvarchar(5), der Standardwert ist FALSE, womit keine DTS-Transformationen zulässig sind. Wenn allow_dts den Wert true hat, muss sync_method entweder auf character oder auf concurrent_c festgelegt werden.

    true wird nicht für Oracle-Verleger unterstützt.

  • [ @allow_subscription_copy = ] 'allow_subscription_copy'
    Aktiviert oder deaktiviert die Option zum Kopieren der Abonnementdatenbanken, die diese Veröffentlichung abonniert haben. allow_subscription_copy ist vom Datentyp nvarchar(5), der Standardwert ist FALSE.

  • [ @conflict_policy = ] 'conflict_policy'
    Gibt die Richtlinie zur Konfliktlösung an, die bei der Abonnentenoption zur verzögerten Aktualisierung über eine Warteschlange verwendet wird. conflict_policy ist vom Datentyp nvarchar(100), der Standardwert ist NULL. Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    pub wins

    Der Verleger gewinnt den Konflikt.

    sub reinit

    Erneutes Initialisieren des Abonnements.

    sub wins

    Der Abonnent gewinnt den Konflikt.

    NULL (Standard)

    Wenn der Wert NULL ist und es sich um eine Snapshotveröffentlichung handelt, ist die Standardrichtlinie sub reinit. Wenn der Wert NULL ist und es sich nicht um eine Snapshotveröffentlichung handelt, ist der Standard pub wins.

    Wird nicht für Oracle-Verleger unterstützt.

  • [ @centralized_conflicts = ] 'centralized_conflicts'
    Gibt an, ob Konfliktdatensätze auf dem Verleger gespeichert werden. centralized_conflicts ist vom Datentyp nvarchar(5), der Standardwert ist TRUE. Bei true werden Konfliktdatensätze auf dem Verleger gespeichert. Bei false werden die Konfliktdatensätze sowohl auf dem Verleger als auch auf dem Abonnenten gespeichert, der den Konflikt verursacht hat. Wird nicht für Oracle-Verleger unterstützt.

  • [ @conflict_retention = ] conflict_retention
    Gibt die Beibehaltungsdauer der Konflikte in Tagen an. Dies ist der Zeitraum, während dessen Konfliktmetadaten für die Peer-to-Peer-Transaktionsreplikation und Abonnements mit verzögerter Aktualisierung über eine Warteschlange gespeichert werden. conflict_retention ist vom Datentyp int und hat den Standardwert 14. Wird nicht für Oracle-Verleger unterstützt.

  • [ @queue_type = ] 'queue_type'
    Gibt an, welcher Warteschlangentyp verwendet wird. queue_type ist vom Datentyp nvarchar(10) und hat den Standardwert NULL. Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    sql

    Verwendet SQL Server zum Speichern von Transaktionen.

    NULL (Standard)

    Standardmäßig gleichbedeutend mit sql; dadurch wird SQL Server zum Speichern von Transaktionen verwendet.

    HinweisHinweis

    Unterstützung für die Verwendung von Microsoft Message Queuing wurde eingestellt. Wird msmq als Wert angegeben, führt dies zu einer Warnung, und bei einer Replikation wird der Wert automatisch auf sql festgelegt.

    Wird nicht für Oracle-Verleger unterstützt.

  • [ @add_to_active_directory = ] 'add_to_active_directory'
    Dieser Parameter wurde als veraltet markiert und wird nur aus Gründen der Abwärtskompatibilität von Skripts unterstützt. Veröffentlichungsinformationen können nicht mehr zu Microsoft Active Directory hinzugefügt werden.

  • [ @logreader_job_name = ] 'logreader_agent_name'
    Der Name eines vorhandenen Agentauftrags. logreader_agent_name ist vom Datentyp sysname und hat den Standardwert NULL. Dieser Parameter wird nur angegeben, wenn der Protokolllese-Agent einen vorhandenen Auftrag verwendet, anstatt dass ein neuer Auftrag erstellt wird.

  • [ @qreader_job_name = ] 'queue_reader_agent_name'
    Der Name eines vorhandenen Agentauftrags. queue_reader_agent_name ist vom Datentyp sysname und hat den Standardwert NULL. Dieser Parameter wird nur angegeben, wenn der Warteschlangenlese-Agent einen vorhandenen Auftrag verwendet, anstatt dass ein neuer Auftrag erstellt wird.

  • [ [ @publisher = ] 'publisher'
    Gibt einen Nicht-SQL Server-Verleger an. publisher ist vom Datentyp sysname und hat den Standardwert NULL.

    HinweisHinweis

    publisher sollte nicht beim Hinzufügen einer Veröffentlichung zu einem SQL Server-Verleger verwendet werden.

  • [ [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup'
    Zeigt an, ob Abonnenten ein Abonnement dieser Veröffentlichung von einer Sicherung anstatt von einem Anfangssnapshot initialisieren können. allow_initialize_from_backup ist vom Datentyp nvarchar(5) und kann einen der folgenden Werte annehmen:

    Wert

    Beschreibung

    true

    Aktiviert die Initialisierung aus einer Sicherung.

    false

    Deaktiviert die Initialisierung aus einer Sicherung.

    NULL (Standard)

    Ist standardmäßig true für eine Veröffentlichung in einer Peer-to-Peer-Replikationstopologie und false für alle anderen Veröffentlichungen.

    Weitere Informationen finden Sie unter Initialisieren eines Transaktionsabonnements ohne Snapshot.

  • [ [ @replicate_ddl = ] replicate_ddl
    Zeigt an, ob für die Veröffentlichung die Schemareplikation unterstützt wird. replicate_ddl ist vom Datentyp int. Der Standardwert ist 1 für SQL Server-Verleger und 0 für Nicht-SQL Server-Verleger. 1 zeigt an, dass auf dem Verleger ausgeführte DDL-Anweisungen (Data Definition Language) repliziert werden, und 0 zeigt an, dass DDL-Anweisungen nicht repliziert werden. Die Schemareplikation wird nicht für Oracle-Verleger unterstützt. Weitere Informationen finden Sie unter Vornehmen von Schemaänderungen in Veröffentlichungsdatenbanken.

  • [ [ @enabled_for_p2p = ] 'enabled_for_p2p'
    Ermöglicht die Verwendung der Veröffentlichung in einer Peer-to-Peer-Replikationstopologie. enabled_for_p2p ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE. true zeigt an, dass die Veröffentlichung Peer-to-Peer-Replikation unterstützt. Wird für enabled_for_p2p der Wert true festgelegt, gelten die folgenden Einschränkungen:

    • allow_anonymous muss den Wert false haben.

    • allow_dts muss den Wert false haben.

    • allow_initialize_from_backup muss den Wert true haben.

    • allow_queued_tran muss den Wert false haben.

    • allow_sync_tran muss den Wert false haben.

    • conflict_policy muss den Wert false haben.

    • independent_agent muss den Wert true haben.

    • repl_freq muss den Wert continuous haben.

    • replicate_ddl muss den Wert 1 haben.

    Weitere Informationen finden Sie unter Peer-to-Peer-Transaktionsreplikation.

  • [ [ @publish_local_changes_only = ] 'publish_local_changes_only'
    Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

  • [ [ @enabled_for_het_sub= ] 'enabled_for_het_sub'
    Ermöglicht der Veröffentlichung die Unterstützung von Nicht-SQL Server-Abonnenten. enabled_for_het_sub ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE. Der Wert true bedeutet, dass die Veröffentlichung Nicht-SQL Server-Abonnenten unterstützt. Wenn enabled_for_het_sub den Wert true hat, gelten folgende Einschränkungen:

    • allow_initialize_from_backup muss den Wert false haben.

    • allow_push muss den Wert true haben.

    • allow_queued_tran muss den Wert false haben.

    • allow_subscription_copy muss den Wert false haben.

    • allow_sync_tran muss den Wert false haben.

    • autogen_sync_procs muss den Wert false haben.

    • conflict_policy muss den Wert NULL haben.

    • enabled_for_internet muss den Wert false haben.

    • enabled_for_p2p muss den Wert false haben.

    • ftp_address muss den Wert NULL haben.

    • ftp_subdirectory muss den Wert NULL haben.

    • ftp_password muss den Wert NULL haben.

    • pre_snapshot_script muss den Wert NULL haben.

    • post_snapshot_script muss den Wert NULL haben.

    • replicate_ddl muss den Wert 0 haben.

    • qreader_job_name muss den Wert NULL haben.

    • queue_type muss den Wert NULL haben.

    • sync_method darf nicht den Wert native oder concurrent haben.

    Weitere Informationen finden Sie unter Nicht-SQL Server-Abonnenten.

  • [ @p2p_conflictdetection= ] 'p2p_conflictdetection'
    Ermöglicht die Erkennung von Konflikten durch den Verteilungs-Agent, wenn die Veröffentlichung für die Peer-to-Peer-Replikation aktiviert ist. p2p_conflictdetection ist vom Datentyp nvarchar(5) und hat den Standardwert TRUE. Weitere Informationen finden Sie unter Konflikterkennung bei der Peer-to-Peer-Replikation.

  • [ [ @p2p_originator_id= ] p2p_originator_id
    Gibt eine ID für einen Knoten in einer Peer-to-Peer-Topologie an. p2p_originator_id ist vom Datentyp int, der Standardwert ist NULL. Diese ID wird für die Konflikterkennung verwendet, wenn p2p_conflictdetection auf TRUE festgelegt ist. Geben Sie eine positive ID ungleich 0 an, die in der Topologie noch nicht verwendet wurde. Führen Sie zum Anzeigen einer Liste der bereits verwendeten IDs sp_help_peerconflictdetection aus.

  • [ [ @p2p_continue_onconflict= ] 'p2p_continue_onconflict'
    Bestimmt, ob der Verteilungs-Agent die Verarbeitung von Änderungen fortsetzt, nachdem ein Konflikt erkannt wurde. p2p_continue_onconflict ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE.

    VorsichtshinweisVorsicht

    Es wird empfohlen, den Standardwert FALSE zu verwenden. Wenn diese Option auf TRUE festgelegt wird, versucht der Verteilungs-Agent, die Datenkonvergenz in der Topologie herbeizuführen, indem die konfliktverursachende Zeile von dem Knoten mit der höchsten Absender-ID angewendet wird. Bei dieser Methode ist keine Konvergenz garantiert. Sie sollten sicherstellen, dass die Topologie nach der Erkennung eines Konflikts konsistent ist. Weitere Informationen finden Sie im Abschnitt über die Konfliktbehandlung unter Konflikterkennung bei der Peer-to-Peer-Replikation.

  • [ [ @allow_partition_switch= ] 'allow_partition_switch'
    Legt fest, ob ALTER TABLE…SWITCH-Anweisungen für die veröffentlichte Datenbank ausgeführt werden können. allow_partition_switch ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE. Weitere Informationen finden Sie unter Replizieren partitionierter Tabellen und Indizes.

  • [ [ @ replicate_partition_switch= ] 'replicate_partition_switch'
    Legt fest, ob ALTER TABLE…SWITCH-Anweisungen, die für die veröffentlichte Datenbank ausgeführt werden, auf den Abonnenten repliziert werden sollen. replicate_partition_switch ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE Diese Option ist nur gültig, wenn allow_partition_switch auf TRUE festgelegt wurde.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addpublication wird bei der Snapshot- und Transaktionsreplikation verwendet.

Wenn mehrere Veröffentlichungen vorhanden sind, die dasselbe Datenbankobjekt veröffentlichen, replizieren nur Veröffentlichungen, die für replicate_ddl den Wert 1 besitzen, die DDL-Anweisungen ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION und ALTER TRIGGER. Eine ALTER TABLE DROP COLUMN DDL-Anweisung wird jedoch von allen Veröffentlichungen repliziert, die die gelöschte Spalte veröffentlichen.

Damit an einer Veröffentlichung mit aktivierter DDL-Replikation (replicate_ddl = 1) nicht replizierende DDL-Änderungen vorgenommen werden können, muss zuerst durch Ausführen von sp_changepublication für replicate_ddl der Wert 0 festgelegt werden. Wenn die nicht replizierenden DDL-Anweisungen ausgestellt wurden, kann sp_changepublication erneut ausgeführt werden, um die DDL-Replikation wieder zu aktivieren.

Beispiel

-- To avoid storing the login and password in the script file, the values 
-- are passed into SQLCMD as scripting variables. For information about 
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksProductTran'; 
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- This should be passed at runtime.
SET @password = $(Password); 

-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Create a new transactional publication with the required properties. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_push = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;
GO

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_addpublication ausführen.