Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
Skapar en push- eller pull-sammanslagningsprenumeration. Den här lagrade proceduren körs i Publisher i publikationsdatabasen.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_addmergesubscription
[ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscription_type = ] N'subscription_type' ]
[ , [ @subscriber_type = ] N'subscriber_type' ]
[ , [ @subscription_priority = ] subscription_priority ]
[ , [ @sync_type = ] N'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 = ] N'optional_command_line' ]
[ , [ @description = ] N'description' ]
[ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ , [ @offloadagent = ] offloadagent ]
[ , [ @offloadserver = ] N'offloadserver' ]
[ , [ @use_interactive_resolver = ] N'use_interactive_resolver' ]
[ , [ @merge_job_name = ] N'merge_job_name' ]
[ , [ @hostname = ] N'hostname' ]
[ ; ]
Arguments
[ @publication = ] N'publicering'
Namnet på publikationen. @publication är sysname, utan standard. Publikationen måste redan existera.
[ @subscriber = ] N'prenumerant'
Namnet på prenumeranten.
@subscriber är sysname, med standardvärdet .NULL
[ @subscriber_db = ] N'subscriber_db'
Namnet på prenumerationsdatabasen.
@subscriber_db är sysname, med standardvärdet .NULL
[ @subscription_type = ] N'subscription_type'
Typen av prenumeration.
@subscription_type är nvarchar(15), med en standard på push.
- Om
push, läggs en push-prenumeration till och Merge Agent läggs till hos distributören. - Om
pull, läggs en pull-prenumeration till utan att lägga till en Merge Agent hos distributören.
Note
Anonyma prenumerationer behöver inte använda denna lagrade procedur.
[ @subscriber_type = ] N'subscriber_type'
Typen av prenumerant. @subscriber_type är nvarchar(15) och kan vara ett av följande värden.
| Value | Description |
|---|---|
local (standardinställning) |
Prenumerant endast känd av Publisher. |
global |
Prenumerant känd på alla servrar. |
I SQL Server 2005 (9.x) och senare versioner kallas lokala prenumerationer för klientprenumerationer, och globala prenumerationer kallas serverprenumerationer.
[ @subscription_priority = ] subscription_priority
Ett nummer som anger prioritet för prenumerationen.
@subscription_priority är verklig, med en standard på NULL. För lokala och anonyma prenumerationer är 0.0prioriteten . För globala prenumerationer måste prioriteten vara mindre än 100.0.
[ @sync_type = ] N'sync_type'
Typen av prenumerationssynkronisering.
@sync_type är nvarchar(15), med en standard på automatic.
- Om
automatic, överförs schemat och initialdata för publicerade tabeller först till prenumeranten. - Om
none, antas prenumeranten redan ha schemat och initialdata för publicerade tabeller. Systemtabeller och data överförs alltid.
Note
Vi rekommenderar att man inte specificerar ett värde på none.
[ @frequency_type = ] frequency_type
Ett värde som indikerar när Merge Agent körs. @frequency_type är int, och kan vara ett av följande värden.
| Value | Description |
|---|---|
1 |
En gång |
4 |
Daglig |
8 |
En gång i veckan |
16 |
Monthly |
32 |
Månadsvis, relativt frekvensintervallet |
64 |
När SQL Server Agent startar |
NULL (standardinställning) |
[ @frequency_interval = ] frequency_interval
Dagen eller dagarna då Merge Agent körs. @frequency_interval är int, och kan vara ett av följande värden.
| Value | Description |
|---|---|
1 |
Sunday |
2 |
Måndag |
3 |
Tuesday |
4 |
Onsdag |
5 |
Torsdag |
6 |
Fredag |
7 |
lördag |
8 |
Dag |
9 |
Vardagar |
10 |
Helgdagar |
NULL (standardinställning) |
[ @frequency_relative_interval = ] frequency_relative_interval
Den schemalagda sammanslagningen av frekvensintervallet varje månad. @frequency_relative_interval är int, och kan vara ett av dessa värden.
| Value | Description |
|---|---|
1 |
First |
2 |
Second |
4 |
Third |
8 |
Fourth |
16 |
Sist |
NULL (standardinställning) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Upprepningsfaktorn som används av @frequency_type.
@frequency_recurrence_factor är int, med standardvärdet .NULL
[ @frequency_subday = ] frequency_subday
Enheten för @frequency_subday_interval. @frequency_subday är int, och kan vara ett av följande värden.
| Value | Description |
|---|---|
1 |
En gång |
2 |
Second |
4 |
Minut |
8 |
Timme |
NULL (standardinställning) |
[ @frequency_subday_interval = ] frequency_subday_interval
Frekvensen för @frequency_subday att inträffa mellan varje sammanslagning.
@frequency_subday_interval är int, med standardvärdet .NULL
[ @active_start_time_of_day = ] active_start_time_of_day
Den tid på dygnet då Merge Agent först schemaläggs och formateras som HHmmss.
@active_start_time_of_day är int, med standardvärdet .NULL
[ @active_end_time_of_day = ] active_end_time_of_day
Den tid på dygnet då Merge Agent slutar schemaläggas och formateras som HHmmss.
@active_end_time_of_day är int, med standardvärdet .NULL
[ @active_start_date = ] active_start_date
Datumet då Merge Agent först schemaläggs och formateras som yyyyMMdd.
@active_start_date är int, med standardvärdet .NULL
[ @active_end_date = ] active_end_date
Datumet då Merge Agent slutar schemalagas, formaterat som yyyyMMdd.
@active_end_date är int, med standardvärdet .NULL
[ @optional_command_line = ] N'optional_command_line'
Den valfria kommandoprompten att köra.
@optional_command_line är nvarchar(4000), med standardvärdet .NULL Denna parameter används för att lägga till ett kommando som fångar utdata och sparar det i en fil eller för att specificera en konfigurationsfil eller attribut.
[ @description = ] Ingen beskrivning'
En kort beskrivning av denna sammanslagningsprenumeration.
@description är nvarchar(255), med en standard på NULL. Detta värde visas av Replication Monitor i kolumnen Friendly Name , som kan användas för att sortera prenumerationerna för en övervakad publikation.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Specificerar om prenumerationen kan synkroniseras via Microsoft Windows Synchronization Manager.
@enabled_for_syncmgr är nvarchar(5), med standardvärdet .false
- Om
false, är prenumerationen inte registrerad hos Synchronization Manager. - Om
true, är prenumerationen registrerad i Synchronization Manager och kan synkroniseras utan att starta SQL Server Management Studio.
[ @offloadagent = ] avlastningsmedel
Specificerar att agenten kan aktiveras på distans.
@offloadagent är bit, med standardvärdet .0
Denna parameter är föråldrad och behålls för bakåtkompatibilitet mellan skript.
[ @offloadserver = ] N'avlasta server'
Specificerar nätverksnamnet på servern som ska användas för fjärraktivering av agenter.
@offloadserver är sysname, med standardvärdet .NULL
[ @use_interactive_resolver = ] N'use_interactive_resolver'
Tillåter att konflikter löses interaktivt för alla artiklar som möjliggör interaktiv lösning.
@use_interactive_resolver är nvarchar(5), med en standard på false.
[ @merge_job_name = ] N'merge_job_name'
Denna parameter är föråldrad och kan inte sättas.
@merge_job_name är sysname, med standardvärdet .NULL
[ @hostname = ] N'hostname'
Överskriver värdet som returneras av HOST_NAME när denna funktion används i WHERE-klausulen i ett parameteriserat filter.
@hostname är sysname, med standardvärdet .NULL
Important
Av prestandaskäl rekommenderar vi att du inte tillämpar funktioner på kolumnnamn i parameteriserade radfilterklausuler, såsom LEFT([MyColumn]) = SUSER_SNAME(). Om du använder HOST_NAME i en filterklausul och åsidosätter värdet HOST_NAME kan det vara nödvändigt att konvertera datatyper med CONVERT. För mer information om bästa praxis i detta fall, se avsnittet "Att överskriva HOST_NAME()-värdet" i ämnet Parameteriserade filter - Parameteriserade radfilter.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
sp_addmergesubscription används vid sammanslagningsreplikation.
När sp_addmergesubscription den körs av en medlem i sysadmin-fastserverrollen för att skapa en push-prenumeration, skapas Merge Agent-jobbet implicit och körs under SQL Server Agent-tjänstekontot. Vi rekommenderar att du utför sp_addmergepushsubscription_agent och specificerar inloggningsuppgifterna för ett annat, agentspecifikt Windows-konto för @job_login och @job_password. Mer information finns i Säkerhetsmodell för replikeringsagent.
Examples
-- 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 [AdventureWorks2022];
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
Permissions
Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_addmergesubscription.