sp_reinitpullsubscription (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'
Имя публикации. Аргумент 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'AdventureWorks2008R2';
SET @publication = N'AdvWorksProductTran';
USE [AdventureWorks2008R2Replica]
-- 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.
См. также