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 предопределенных ролей базы данных.