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
Lägger till en pull-prenumeration i en sammanslagningspublikation. Denna lagrade procureur utförs hos prenumeranten i prenumerationsdatabasen.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_addmergepullsubscription
[ @publication = ] N'publication'
[ , [ @publisher = ] N'publisher' ]
[ , [ @publisher_db = ] N'publisher_db' ]
[ , [ @subscriber_type = ] N'subscriber_type' ]
[ , [ @subscription_priority = ] subscription_priority ]
[ , [ @sync_type = ] N'sync_type' ]
[ , [ @description = ] N'description' ]
[ ; ]
Arguments
[ @publication = ] N'publicering'
Namnet på publikationen. @publication är sysname, utan standard.
[ @publisher = ] N'publisher'
Namnet på utgivaren. @publisher är sysname, med standardnamnet på den lokala servern. Publisher måste vara en giltig server.
[ @publisher_db = ] N'publisher_db'
Namnet på Publisher-databasen.
@publisher_db är sysname med standardvärdet NULL.
[ @subscriber_type = ] N'subscriber_type'
Typen av prenumerant.
@subscriber_type är nvarchar(15), med standardvärdet , localoch kan vara en av global, local, eller anonymous. I SQL Server 2005 (9.x) och senare versioner kallas lokala prenumerationer för klientprenumerationer, och globala prenumerationer kallas serverprenumerationer.
[ @subscription_priority = ] subscription_priority
Prenumerationsprioritet.
@subscription_priority är verklig, med en standard på NULL. För lokala och anonyma prenumerationer är 0.0prioriteten . Prioriteten används av standardresolvern för att välja en vinnare när konflikter upptäcks. För globala prenumeranter måste prenumerationsprioriteten vara mindre än 100, vilket är utgivarens prioritet.
[ @sync_type = ] N'sync_type'
Typen av prenumerationssynkronisering.
@sync_type är nvarchar(15), med en standard på automatic. Det kan vara automatic eller none. 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.
Vi rekommenderar att man specificerar ett värde på automatic.
[ @description = ] Ingen beskrivning'
En kort beskrivning av denna pull-prenumeration.
@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.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
sp_addmergepullsubscription används för sammanslagningsreplikering.
Om du använder SQL Server Agent för att synkronisera prenumerationen måste den sp_addmergepullsubscription_agent lagrade proceduren köras hos prenumeranten för att skapa en agent och ett jobb som synkroniserar med publikationen.
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".
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2022';
SET @hostname = N'adventure-works\david8';
-- At the subscription database, create a pull subscription
-- to a merge publication.
USE [AdventureWorks2022Replica]
EXEC sp_addmergepullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB;
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addmergepullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = $(Login),
@job_password = $(Password),
@hostname = @hostname;
GO
-- 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".
-- Publication must support anonymous Subscribers.
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @websyncurl AS sysname;
DECLARE @security_mode AS int;
DECLARE @login AS sysname;
DECLARE @password AS nvarchar(512);
SET @publication = N'AdvWorksSalesOrdersMergeWebSync';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2022';
SET @websyncurl = 'https://' + $(WebServer) + '/WebSync';
SET @security_mode = 0; -- Basic Authentication for IIS
SET @login = $(Login);
SET @password = $(Password);
-- At the subscription database, create a pull subscription
-- to a merge publication.
USE [AdventureWorks2022Replica]
EXEC sp_addmergepullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB,
@subscriber_type = N'anonymous';
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addmergepullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = @login,
@job_password = @password,
@use_web_sync = 1,
@internet_security_mode = @security_mode,
@internet_url = @websyncurl,
@internet_login = @login,
@internet_password = @password;
GO
Permissions
Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_addmergepullsubscription.