sp_addmergesubscription (Transact-SQL)sp_addmergesubscription (Transact-SQL)

Gilt für: JaSQL Server JaAzure SQL-Datenbank (nur verwaltete Instanz) NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Erstellt ein Mergepushabonnement oder ein Mergepullabonnement.Creates a push or pull merge subscription. Diese gespeicherte Prozedur wird auf dem Verleger für die Veröffentlichungs Datenbank ausgeführt.This stored procedure is executed at the Publisher on the publication database.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

  
sp_addmergesubscription [ @publication= ] 'publication'  
    [ , [ @subscriber = ] 'subscriber' ]  
    [ , [ @subscriber_db= ] 'subscriber_db' ]  
    [ , [ @subscription_type= ] 'subscription_type' ]  
    [ , [ @subscriber_type= ] 'subscriber_type' ]  
    [ , [ @subscription_priority= ] subscription_priority ]  
    [ , [ @sync_type= ] 'sync_type' ]  
    [ , [ @frequency_type= ] frequency_type ]  
    [ , [ @frequency_interval= ] frequency_interval ]  
    [ , [ @frequency_relative_interval= ] frequency_relative_interval ]  
    [ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ]  
    [ , [ @frequency_subday= ] frequency_subday ]  
    [ , [ @frequency_subday_interval= ] frequency_subday_interval ]  
    [ , [ @active_start_time_of_day= ] active_start_time_of_day ]  
    [ , [ @active_end_time_of_day= ] active_end_time_of_day ]  
    [ , [ @active_start_date= ] active_start_date ]  
    [ , [ @active_end_date= ] active_end_date ]  
    [ , [ @optional_command_line= ] 'optional_command_line' ]  
    [ , [ @description= ] 'description' ]  
    [ , [ @enabled_for_syncmgr= ] 'enabled_for_syncmgr' ]  
    [ , [ @offloadagent= ] remote_agent_activation]  
    [ , [ @offloadserver= ] 'remote_agent_server_name' ]  
    [ , [ @use_interactive_resolver= ] 'use_interactive_resolver' ]  
    [ , [ @merge_job_name= ] 'merge_job_name' ]  
    [ , [ @hostname = ] 'hostname'  

ArgumenteArguments

[ @publication = ] 'publication'Der Name der Veröffentlichung.[ @publication = ] 'publication' Is the name of the publication. Publication ist vom Datentyp vom Datentyp sysnameund hat keinen Standardwert.publication is sysname, with no default. Die Veröffentlichung muss bereits vorhanden sein.The publication must already exist.

[ @subscriber = ] 'subscriber'Der Name des Abonnenten.[ @subscriber = ] 'subscriber' Is the name of the Subscriber. Subscriber ist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.subscriber is sysname, with a default of NULL.

[ @subscriber_db = ] 'subscriber_db'Der Name der Abonnement Datenbank.[ @subscriber_db = ] 'subscriber_db' Is the name of the subscription database. subscriber_dbist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.subscriber_dbis sysname, with a default of NULL.

[ @subscription_type = ] 'subscription_type'Der Abonnementtyp.[ @subscription_type = ] 'subscription_type' Is the type of subscription. subscription_typeist vom Datentyp nvarchar (15) und hat den Standardwert Push.subscription_typeis nvarchar(15), with a default of PUSH. Bei Pushwird ein Pushabonnement hinzugefügt, und das Merge-Agent wird auf dem Verteiler hinzugefügt.If push, a push subscription is added and the Merge Agent is added at the Distributor. Wenn Pull, wird ein Pullabonnement hinzugefügt, ohne auf dem Verteiler eine Merge-Agent hinzuzufügen.If pull, a pull subscription is added without adding a Merge Agent at the Distributor.

Hinweis

Für anonyme Abonnements ist diese gespeicherte Prozedur nicht erforderlich.Anonymous subscriptions do not need to use this stored procedure.

[ @subscriber_type = ] 'subscriber_type'Der Typ des Abonnenten.[ @subscriber_type = ] 'subscriber_type' Is the type of Subscriber. subscriber_typeist vom Datentyp nvarchar (15) . die folgenden Werte sind möglich:subscriber_typeis nvarchar(15), and can be one of the following values.

WertValue BeschreibungDescription
lokal vorgegebenelocal (default) Der Abonnent ist nur dem Verleger bekannt.Subscriber known only to the Publisher.
globalglobal Der Abonnent ist allen Servern bekannt.Subscriber known to all servers.

In SQL Server 2005 (9.x)SQL Server 2005 (9.x) und höheren Versionen werden lokale Abonnements als "Clientabonnements" und globale Abonnements als "Serverabonnements" bezeichnet.In SQL Server 2005 (9.x)SQL Server 2005 (9.x) and later versions, local subscriptions are referred to as client subscriptions, and global subscriptions are referred to as server subscriptions

[ @subscription_priority = ] subscription_priorityEine Zahl, die die Priorität für das Abonnement angibt.[ @subscription_priority = ] subscription_priority Is a number indicating the priority for the subscription. subscription_priorityist vom Typ Realund hat den Standardwert NULL.subscription_priorityis real, with a default of NULL. Für lokale und anonyme Abonnements ist die Priorität 0,0.For local and anonymous subscriptions, the priority is 0.0. Für globale Abonnements muss die Priorität niedriger als 100,0 sein.For global subscriptions, the priority must be less than 100.0.

[ @sync_type = ] 'sync_type'Der Synchronisierungstyp des Abonnements.[ @sync_type = ] 'sync_type' Is the subscription synchronization type. sync_typeist vom Datentyp nvarchar (15) . der Standardwert ist automatisch.sync_typeis nvarchar(15), with a default of automatic. Kann " Automatic " oder " None" sein.Can be automatic or none. Wenn automatisch, werden das Schema und die Anfangsdaten für veröffentlichte Tabellen zuerst an den Abonnenten übertragen.If automatic, the schema and initial data for published tables are transferred to the Subscriber first. Wenn keinervorhanden ist, wird davon ausgegangen, dass der Abonnent bereits über das Schema und die Anfangsdaten für veröffentlichte Tabellen verfügt.If none, it is assumed the Subscriber already has the schema and initial data for published tables. Systemtabellen und Daten werden immer übertragen.System tables and data are always transferred.

Hinweis

Es wird empfohlen, nicht den Wert " None" anzugeben.We recommend to not specifying a value of none.

[ @frequency_type = ] frequency_typeEin Wert, der angibt, wann die Merge-Agent ausgeführt wird.[ @frequency_type = ] frequency_type Is a value indicating when the Merge Agent will run. frequency_type ist vom Datentyp intund kann einen der folgenden Werte aufweisen.frequency_type is int, and can be one of the following values.

WertValue DescriptionDescription
11 EinmalOnce
44 TäglichDaily
88 Wöchentlicher ZeitplanWeekly
1010 Monatlicher ZeitplanMonthly
2020 Monatlich, relativ zum HäufigkeitsintervallMonthly, relative to the frequency interval
4040 Beim Starten des SQL ServerSQL Server-AgentsWhen SQL ServerSQL Server Agent starts
NULL (Standard)NULL (default)

[ @frequency_interval = ] frequency_intervalDer Tag oder die Tage, an denen die Merge-Agent ausgeführt wird.[ @frequency_interval = ] frequency_interval The day or days that the Merge Agent runs. frequency_interval ist vom Datentyp intund kann einen der folgenden Werte aufweisen.frequency_interval is int, and can be one of the following values.

WertValue DescriptionDescription
11 SonntagSunday
22 MontagMonday
33 DienstagTuesday
44 MittwochWednesday
55 DonnerstagThursday
66 FreitagFriday
77 SamstagSaturday
88 DayDay
99 TageWeekdays
1010 WochenendtageWeekend days
NULL (Standard)NULL (default)

[ @frequency_relative_interval = ] frequency_relative_intervalDas geplante Merge-Vorkommen des Häufigkeits Intervalls in jedem Monat.[ @frequency_relative_interval = ] frequency_relative_interval Is the scheduled merge occurrence of the frequency interval in each month. frequency_relative_interval ist vom Datentyp intund kann einen der folgenden Werte aufweisen.frequency_relative_interval is int, and can be one of these values.

WertValue DescriptionDescription
11 ErsterFirst
22 ZweimalSecond
44 DritterThird
88 VierterFourth
1616 LetzterLast
NULL (Standard)NULL (default)

[ @frequency_recurrence_factor = ] frequency_recurrence_factorDer von frequency_typeverwendete Wiederholungs Faktor.[ @frequency_recurrence_factor = ] frequency_recurrence_factor Is the recurrence factor used by frequency_type. frequency_recurrence_factorist vom Datentyp intund hat den Standardwert NULL.frequency_recurrence_factoris int, with a default of NULL.

[ @frequency_subday = ] frequency_subdayIst die Einheit für frequency_subday_interval.[ @frequency_subday = ] frequency_subday Is the unit for frequency_subday_interval. frequency_subday ist vom Datentyp intund kann einen der folgenden Werte aufweisen.frequency_subday is int, and can be one of the following values.

WertValue DescriptionDescription
11 EinmalOnce
22 ZweimalSecond
44 MinuteMinute
88 HourHour
NULL (Standard)NULL (default)

[ @frequency_subday_interval = ] frequency_subday_intervalDie Häufigkeit, mit der frequency_subday zwischen den einzelnen zusammenführen auftritt.[ @frequency_subday_interval = ] frequency_subday_interval Is the frequency for frequency_subday to occur between each merge. frequency_subday_interval ist vom Datentyp intund hat den Standardwert NULL.frequency_subday_interval is int, with a default of NULL.

[ @active_start_time_of_day = ] active_start_time_of_dayDie Tageszeit, zu der die Merge-Agent zum ersten Mal geplant ist. dabei wird das Format HHMMSS verwendet.[ @active_start_time_of_day = ] active_start_time_of_day Is the time of day when the Merge Agent is first scheduled, formatted as HHMMSS. active_start_time_of_day ist vom Datentyp intund hat den Standardwert NULL.active_start_time_of_day is int, with a default of NULL.

[ @active_end_time_of_day = ] active_end_time_of_dayDie Tageszeit, zu der die Merge-Agent nicht mehr geplant ist. dabei wird das Format HHMMSS verwendet.[ @active_end_time_of_day = ] active_end_time_of_day Is the time of day when the Merge Agent stops being scheduled, formatted as HHMMSS. active_end_time_of_day ist vom Datentyp intund hat den Standardwert NULL.active_end_time_of_day is int, with a default of NULL.

[ @active_start_date = ] active_start_dateDas Datum, an dem die Merge-Agent zum ersten Mal geplant ist, formatiert als YYYYMMDD.[ @active_start_date = ] active_start_date Is the date when the Merge Agent is first scheduled, formatted as YYYYMMDD. active_start_date ist vom Datentyp intund hat den Standardwert NULL.active_start_date is int, with a default of NULL.

[ @active_end_date = ] active_end_dateDas Datum, an dem der Merge-Agent nicht mehr geplant ist, formatiert als YYYYMMDD.[ @active_end_date = ] active_end_date Is the date when the Merge Agent stops being scheduled, formatted as YYYYMMDD. active_end_date ist vom Datentyp intund hat den Standardwert NULL.active_end_date is int, with a default of NULL.

[ @optional_command_line = ] 'optional_command_line'Die optionale Eingabeaufforderung, die ausgeführt werden soll.[ @optional_command_line = ] 'optional_command_line' Is the optional command prompt to execute. optional_command_lineist vom Datentyp nvarchar (4000) und hat den Standardwert NULL.optional_command_lineis nvarchar(4000), with a default of NULL. Dieser Parameter wird verwendet, um einen Befehl hinzuzufügen, der die Ausgabe aufzeichnet und in einer Datei speichert, oder um eine Konfigurationsdatei oder ein Konfigurationsattribut anzugeben.This parameter is used to add a command that captures the output and saves it to a file or to specify a configuration file or attribute.

[ @description = ] 'description'Eine kurze Beschreibung dieses Mergeabonnements.[ @description = ] 'description' Is a brief description of this merge subscription. die Beschreibungist vom Datentyp nvarchar (255) und hat den Standardwert NULL.descriptionis nvarchar(255), with a default of NULL. Dieser Wert wird vom Replikations Monitor in der Spalte Anzeige Name angezeigt, der zum Sortieren der Abonnements für eine überwachte Veröffentlichung verwendet werden kann.This value is displayed by the Replication Monitor in the Friendly Name column, which can be used to sort the subscriptions for a monitored publication.

[ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'Gibt an, ob das Abonnement über MicrosoftMicrosoft die Synchronisierungs Verwaltung von Windows synchronisiert werden kann.[ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' Specifies if the subscription can be synchronized through MicrosoftMicrosoft Windows Synchronization Manager. enabled_for_syncmgr ist vom Datentyp nvarchar (5) und hat den Standardwert false.enabled_for_syncmgr is nvarchar(5), with a default of FALSE. Wenn der Wert falseist, wird das Abonnement nicht bei der Synchronisierungs Verwaltung registriert.If false, the subscription is not registered with Synchronization Manager. Wenn der Wert trueist, wird das Abonnement bei der Synchronisierungs Verwaltung registriert und MicrosoftMicrosoft kann synchronisiert werden, ohne zu starten SQL Server Management StudioSQL Server Management Studio.If true, the subscription is registered with Synchronization Manager and can be synchronized without starting MicrosoftMicrosoft SQL Server Management StudioSQL Server Management Studio.

[ @offloadagent = ] remote_agent_activationGibt an, dass der Agent Remote aktiviert werden kann.[ @offloadagent = ] remote_agent_activation Specifies that the agent can be activated remotely. remote_agent_activation ist vom Typ Bit und hat den Standardwert 0.remote_agent_activation is bit with a default of 0.

Hinweis

Dieser Parameter wurde als veraltet markiert und wird nur noch bereitgestellt, um Abwärtskompatibilität von Skripts sicherzustellen.This parameter has been deprecated and is only maintained for backward compatibility of scripts.

[ @offloadserver = ] 'remote_agent_server_name'Gibt den Netzwerknamen des Servers an, der für die Remote-Agentaktivierung verwendet werden soll.[ @offloadserver = ] 'remote_agent_server_name' Specifies the network name of server to be used for remote agent activation. remote_agent_server_nameist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.remote_agent_server_nameis sysname, with a default of NULL.

[ @use_interactive_resolver = ] 'use_interactive_resolver'Ermöglicht das interaktive Auflösen von Konflikten für alle Artikel, die eine interaktive Auflösung ermöglichen.[ @use_interactive_resolver = ] 'use_interactive_resolver' Allows conflicts to be resolved interactively for all articles that allow interactive resolution. use_interactive_resolver ist vom Datentyp nvarchar (5) und hat den Standardwert false.use_interactive_resolver is nvarchar(5), with a default of FALSE.

[ @merge_job_name = ] 'merge_job_name'Der merge_job_name-Parameter ist veraltet und kann nicht festgelegt werden. @[ @merge_job_name = ] 'merge_job_name' The @merge_job_name parameter is deprecated and cannot be set. merge_job_name ist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.merge_job_name is sysname, with a default of NULL.

[ @hostname = ] 'hostname'Überschreibt den von HOST_NAME zurückgegebenen Wert, wenn diese Funktion in der WHERE-Klausel eines parametrisierten Filters verwendet wird.[ @hostname = ] 'hostname' Overrides the value returned by HOST_NAME when this function is used in the WHERE clause of a parameterized filter. Der Hostname ist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.Hostname is sysname, with a default of NULL.

Wichtig

Aus Leistungsgründen wird empfohlen, keine Funktionen auf Spaltennamen in parametrisierten Zeilenfilterklauseln (beispielsweise LEFT([MyColumn]) = SUSER_SNAME()) anzuwenden.For performance reasons, we recommend that you not apply functions to column names in parameterized row filter clauses, such as LEFT([MyColumn]) = SUSER_SNAME(). Wenn Sie HOST_NAME in einer Filter Klausel verwenden und den HOST_NAME-Wert überschreiben, ist es möglicherweise erforderlich, Datentypen mithilfe von Convertzu konvertieren.If you use HOST_NAME in a filter clause and override the HOST_NAME value, it might be necessary to convert data types using CONVERT. Weitere Informationen zu bewährten Methoden für diesen Fall finden Sie im Abschnitt über das Überschreiben des HOST_NAME()-Werts im Thema Parameterized Row Filters.For more information about best practices for this case, see the section "Overriding the HOST_NAME() Value" in the topic Parameterized Row Filters.

RückgabecodewerteReturn Code Values

0 (Erfolg) oder 1 (Fehler)0 (success) or 1 (failure)

HinweiseRemarks

sp_addmergesubscription wird bei der Mergereplikation verwendet.sp_addmergesubscription is used in merge replication.

Wenn sp_addmergesubscription von einem Mitglied der festen Server Rolle sysadmin ausgeführt wird, um ein Pushabonnement zu erstellen, wird der Merge-Agent Auftrag implizit erstellt und unter dem SQL ServerSQL Server -Agent-Dienst Konto ausgeführt.When sp_addmergesubscription is executed by a member of the sysadmin fixed server role to create a push subscription, the Merge Agent job is implicitly created and runs under the SQL ServerSQL Server Agent service account. Es wird empfohlen, dass Sie sp_addmergepushsubscription_agent ausführen und die Anmelde Informationen eines anderen, agentspezifischen Windows-Kontos für @job_login und @job_passwordangeben.We recommend that you execute sp_addmergepushsubscription_agent and specify the credentials of a different, agent-specific Windows account for @job_login and @job_password. Weitere Informationen finden Sie unter Replication Agent Security Model.For more information, see Replication Agent Security Model.

BeispielExample

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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 @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica'; 
SET @hostname = N'adventure-works\david8'

-- Add a push subscription to a merge publication.
USE [AdventureWorks2012];
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @hostname = @hostname;

--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

BerechtigungenPermissions

Nur Mitglieder der festen Server Rolle sysadmin oder der festen Daten Bank Rolle db_owner können sp_addmergesubscriptionausführen.Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_addmergesubscription.

Siehe auchSee Also

Create a Push Subscription Create a Push Subscription
Erstellen eines Pullabonnements Create a Pull Subscription
Interaktive Konfliktlösung Interactive Conflict Resolution
Abonnieren von Veröffentlichungen Subscribe to Publications
sp_changemergesubscription (Transact-SQL) sp_changemergesubscription (Transact-SQL)
sp_dropmergesubscription (Transact-SQL) sp_dropmergesubscription (Transact-SQL)
sp_helpmergesubscription (Transact-SQL)sp_helpmergesubscription (Transact-SQL)