sp_reinitmergepullsubscription (T-SQL)

Berlaku untuk:SQL Server

Menandai langganan penarikan penggabungan untuk reinisialisasi saat Agen Penggabungan berjalan berikutnya. Prosedur tersimpan ini dijalankan di Pelanggan dalam database langganan.

Konvensi sintaks transact-SQL

Sintaks

sp_reinitmergepullsubscription
    [ [ @publisher = ] N'publisher' ]
    [ , [ @publisher_db = ] N'publisher_db' ]
    [ , [ @publication = ] N'publication' ]
    [ , [ @upload_first = ] N'upload_first' ]
[ ; ]

Argumen

[ @publisher = ] N'publisher'

Nama Publisher. @publisher adalah sysname, dengan default all.

[ @publisher_db = ] N'publisher_db'

Nama database Publisher. @publisher_db adalah sysname, dengan default all.

[ @publication = ] N'publikasi'

Nama publikasi. @publication adalah sysname, dengan default all.

[ @upload_first = ] N'upload_first'

Menentukan apakah perubahan di Pelanggan diunggah sebelum langganan diinisialisasi ulang. @upload_first adalah nvarchar(5), dengan default false.

  • Jika true, perubahan diunggah sebelum langganan diinisialisasi ulang.
  • Jika false, perubahan tidak diunggah.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_reinitmergepullsubscription digunakan dalam replikasi penggabungan.

Jika Anda menambahkan, menghilangkan, atau mengubah filter berparameter, perubahan yang tertunda di Pelanggan tidak dapat diunggah ke Penerbit selama reinisialisasi. Jika Anda ingin mengunggah perubahan yang tertunda, sinkronkan semua langganan sebelum mengubah filter.

Contoh

J. Menginisialisasi ulang langganan penarikan dan kehilangan perubahan yang tertunda

-- 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'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2022Replica]

-- Execute at the Subscriber to reinitialize the pull subscription. 
-- Pending changes at the Subscrber are lost.
EXEC sp_reinitmergepullsubscription 
    @publisher = $(PubServer),
    @publisher_db = @publicationDB,
    @publication = @publication,
    @upload_first = N'false';
GO

-- Start the Merge Agent.

B. Menginisialisasi ulang langganan penarikan dan mengunggah perubahan yang tertunda

-- 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'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2022Replica]

-- Execute at the Subscriber to reinitialize the pull subscription, 
-- and upload pending changes at the Subscriber. 
EXEC sp_reinitmergepullsubscription 
    @publisher = $(PubServer),
    @publisher_db = @publicationDB,
    @publication = @publication,
    @upload_first = N'true';
GO

-- Start the Merge Agent.

Izin

Hanya anggota peran server tetap sysadmin atau peran database tetap db_owner yang dapat menjalankan sp_reinitmergepullsubscription.