sp_reinitpullsubscription (Transact-SQL)

Применимо к:SQL Server Управляемый экземпляр SQL Azure

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

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

Синтаксис

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

Аргументы

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

[ @publisher_db = ] 'publisher_db' Имя базы данных издателя. publisher_db — sysname без значения по умолчанию.

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

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

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.

Разрешения

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

См. также

Повторная инициализация подписки
Повторная инициализация подписок
Системные хранимые процедуры (Transact-SQL)