sp_reinitpullsubscription (Transact-SQL)
Помечает анонимную или транзакционную подписку по запросу для повторной инициализации при следующем запуске агента распространителя. Эта хранимая процедура выполняется на подписчике в базе данных подписки по запросу.
Синтаксические обозначения в 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 на издателе.
Разрешения
Только члены фиксированной серверной роли sysadmin или фиксированной роли базы данных db_owner могут выполнять хранимую процедуру sp_reinitpullsubscription.
Пример
-- 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'AdventureWorks';
SET @publication = N'AdvWorksProductTran';
USE [AdventureWorksReplica]
-- Execute at the Subscriber to reinitialize the pull subscription.
EXEC sp_reinitpullsubscription
@publisher = $(PubServer),
@publisher_db = @publicationDB,
@publication = @publication;
GO
-- Start the Distribution Agent.
См. также
Справочник
Системные хранимые процедуры (Transact-SQL)
Другие ресурсы
How to: Reinitialize a Subscription (Replication Transact-SQL Programming)
Повторная инициализация подписки