sp_addpublication (Transact-SQL)

Aktualisiert: 12. Dezember 2006

Erstellt eine Snapshot- oder Transaktionspublikation. Diese gespeicherte Prozedur wird beim Verleger mit der Publikationsdatenbank 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' ]

Argumente

  • [ @publication=] 'publication'
    Der Name der zu erstellenden Publikation. publication ist vom Datentyp sysname und hat keinen Standardwert. Dieser Name muss innerhalb der Datenbank eindeutig sein.
  • [ @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 Transaktionspublikationen 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 Transaktionspublikationen unterstützt.

    database snapshot

    Erstellt aus einem Datenbanksnapshot eine Massenkopierprogramm-Ausgabe aller Tabellen im systemeigenen Modus. Für diese Option ist SQL Server 2005 Enterprise Edition Service Pack 2 oder eine höhere Version erforderlich.

    database snapshot character

    Erstellt aus einem Datenbanksnapshot eine Massenkopierprogramm-Ausgabe aller Tabellen im Zeichenmodus. Für diese Option ist SQL Server 2005 Enterprise Edition Service Pack 2 oder eine höhere Version erforderlich.

    NULL (Standard)

    Ist für Microsoft SQL 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 Publikation. description ist vom Datentyp nvarchar(255), der Standardwert ist NULL.
  • [ @status=] 'status'
    Gibt an, ob Publikationsdaten verfügbar sind. status ist vom Datentyp nvarchar(8). Die folgenden Werte sind möglich.

    Wert Beschreibung

    active

    Die Publikationsdaten sind für Abonnenten sofort verfügbar.

    inactive (Standard)

    Die Publikationsdaten sind für Abonnenten zunächst nicht verfügbar, wenn die Publikation 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 Publikation vorhanden ist. independent_agent ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Bei true ist ein eigenständiger Verteilungs-Agent für diese Publikation vorhanden. Bei false verwendet die Publikation einen gemeinsam genutzten Verteilungs-Agent, und jedes Paar aus Verlegerdatenbank und Abonnentendatenbank besitzt einen einzelnen, gemeinsamen Agent.
  • [ @immediate_sync=] 'immediate_synchronization'
    Gibt an, ob die Synchronisierungsdateien für die Publikation 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 Publikation 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 Publikation 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 Publikation 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 Publikation erstellt werden können. allow_push ist vom Datentyp nvarchar(5), der Standardwert ist TRUE, womit Pushabonnements für die Publikation zulässig sind.
  • [ @allow_pull=] 'allow_pull'
    Gibt an, ob Pullabonnements für die Publikation erstellt werden können. allow_pull ist vom Datentyp nvarchar(5), der Standardwert ist FALSE. Bei false sind keine Pullabonnements für die Publikation zulässig.
  • [ @allow_anonymous=] 'allow_anonymous'
    Gibt an, ob anonyme Abonnements für die Publikation 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 Publikation zulässig.
  • [ @allow_sync_tran=] 'allow_sync_tran'
    Gibt an, ob Abonnements mit sofortiger Aktualisierung für die Publikation 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.

    ms188738.note(de-de,SQL.90).gifHinweis:
    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 Publikation 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 für den alternativen Ordner für den Snapshot an. alternate_snapshot_folder ist vom Datentyp nvarchar(255), der Standardwert ist 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-Dienstes für den Verteiler. ftp_address ist vom Datentyp sysname, der Standardwert ist NULL. Gibt an, wo die Publikationssnapshotdateien für den Verteilungs-Agent oder Merge-Agent eines Abonnenten zum Abholen gespeichert sind. Da diese Eigenschaft für jede Publikation gespeichert wird, kann jede Publikation einen unterschiedlichen Wert für ftp_address besitzen. Die Publikation muss die Weitergabe von Snapshots über FTP unterstützen.
  • [ @ftp_port= ] ftp_port
    Die Portnummer für den FTP-Dienst des Verteilers. ftp_port ist vom Datentyp int und hat den Standardwert 21. Dieser Parameter gibt an, wo die Publikationssnapshotdateien zum Abholen durch den Verteilungs- oder Merge-Agent eines Abonnenten abgelegt sind. Da diese Eigenschaft für jede Publikation gespeichert wird, kann jede Publikation einen eigenen Wert für ftp_port besitzen.
  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    Dieser Parameter gibt an, wo die Snapshotdateien zum Abholen durch den Verteilungs- oder Merge-Agent des Abonnenten bereitgestellt werden, wenn die Publikation die Weitergabe von Snapshots über FTP unterstützt. ftp_subdirectory ist vom Datentyp nvarchar(255) und hat den Standardwert NULL. Da diese Eigenschaft für jede Publikation gespeichert wird, kann jede Publikation ihren eigenen Wert für ftp_subdirectory 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 Publikation 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 Publikation 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 Snapshotpublikation handelt, ist die Standardrichtlinie sub reinit. Wenn der Wert NULL ist und es sich nicht um eine Snapshotpublikation 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 für den Konflikt in Tagen an. conflict_retention ist vom Datentyp int, der Standardwert ist 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.

    ms188738.note(de-de,SQL.90).gifHinweis:
    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. Publikationsinformationen 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.

    ms188738.note(de-de,SQL.90).gifHinweis:
    publisher sollte nicht beim Hinzufügen einer Publikation zu einem SQL Server-Verleger verwendet werden.
  • [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup'
    Zeigt an, ob Abonnenten ein Abonnement dieser Publikation 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 Publikation in einer Peer-to-Peer-Replikationstopologie und false für alle anderen Publikationen.

    Weitere Informationen finden Sie unter Initialisieren eines Transaktionsabonnements ohne Snapshot.

  • [ @replicate_ddl= ] replicate_ddl
    Zeigt an, ob für die Publikation 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 Publikationsdatenbanken.
  • [ @enabled_for_p2p= ] 'enabled_for_p2p'
    Ermöglicht die Verwendung der Publikation in einer Peer-to-Peer-Replikationstopologie. enabled_for_p2p ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE. true zeigt an, dass die Publikation 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 zur internen Verwendung.
  • [ @enabled_for_het_sub= ] 'enabled_for_het_sub'
    Ermöglicht der Publikation 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 Publikation 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.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addpublication wird bei der Snapshot- und Transaktionsreplikation verwendet.

Wenn mehrere Publikationen vorhanden sind, die dasselbe Datenbankobjekt veröffentlichen, replizieren nur Publikationen, 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 Publikationen repliziert, die die gelöschte Spalte veröffentlichen.

Damit an einer Publikation mit aktivierter DDL-Replikation (replicate_ddl = 1) nicht replizierende DDL-Änderungen vorgenommen werden können, muss zuerst durch Ausführen von sp_changepublication (Transact-SQL) für replicate_ddl der Wert 0 festgelegt werden. Nachdem die nicht replizierenden DDL-Anweisungen ausgegeben wurden, kann durch erneutes Ausführen von sp_changepublication (Transact-SQL) die DDL-Replikation wieder aktiviert werden.

Berechtigungen

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

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

Siehe auch

Verweis

sp_addlogreader_agent (Transact-SQL)
sp_addpublication_snapshot (Transact-SQL)
sp_changepublication (Transact-SQL)
sp_droppublication (Transact-SQL)
sp_helppublication (Transact-SQL)
sp_replicationdboption (Transact-SQL)
Gespeicherte Replikationsprozeduren (Transact-SQL)

Andere Ressourcen

How to: Create a Publication (Replication Transact-SQL Programming)
Veröffentlichen von Daten und Datenbankobjekten

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Neuer Inhalt:
  • Es wurden Informationen zu neuen Werten für den @sync_method-Parameter hinzugefügt.