Поделиться через


sp_reinitpullsubscription (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Помечает анонимную или транзакционную подписку по запросу для повторной инициализации при следующем запуске агента распространителя. Эта хранимая процедура выполняется на подписчике в базе данных подписки по запросу.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_reinitpullsubscription
    [ @publisher = ] N'publisher'
    [ , [ @publisher_db = ] N'publisher_db' ]
    [ , [ @publication = ] N'publication' ]
[ ; ]

Аргументы

[ @publisher = ] N'publisher'

Имя издателя. @publisher — sysname без значения по умолчанию.

[ @publisher_db = ] N'publisher_db'

Имя базы данных издателя. @publisher_db имеет имя sysname с значением по умолчаниюNULL.

[ @publication = ] N'publication'

Имя публикации. @publication — sysname, с значением по умолчаниюall, которое помечает все подписки для повторной инициализации.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

sp_reinitpullsubscription используется в репликации транзакций.

sp_reinitpullsubscription не поддерживается для одноранговой репликации транзакций.

sp_reinitpullsubscriptionможно вызвать от подписчика, чтобы повторно инициализировать подписку во время следующего запуска агент распространения.

Подписки на публикации, созданные со значением false @immediate_sync, не могут быть повторно инициализированы из подписчика.

Вы можете повторно инициализировать подписку на вытягивание, выполнив sp_reinitpullsubscription на подписчике или sp_reinitsubscription на издателе.

Примеры

-- 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 @publicationDB AS sysname;
DECLARE @publication AS sysname;
SET @publicationDB = N'AdventureWorks2022';
SET @publication = N'AdvWorksProductTran';

USE [AdventureWorks2022Replica]

-- Execute at the Subscriber to reinitialize the pull subscription. 
EXEC sp_reinitpullsubscription 
    @publisher = $(PubServer),
    @publisher_db = @publicationDB,
    @publication = @publication;
GO

-- Start the Distribution Agent.

Разрешения

Могут выполняться sp_reinitpullsubscriptionтолько члены предопределенных ролей сервера sysadmin или db_owner предопределенных ролей базы данных.