sp_reinitmergesubscription (T-SQL)

Berlaku untuk:SQL Server

Menandai langganan penggabungan untuk reinisialisasi saat agen Penggabungan berjalan berikutnya. Prosedur tersimpan ini dijalankan di Publisher dalam database publikasi.

Konvensi sintaks transact-SQL

Sintaks

sp_reinitmergesubscription
    [ [ @publication = ] N'publication' ]
    [ , [ @subscriber = ] N'subscriber' ]
    [ , [ @subscriber_db = ] N'subscriber_db' ]
    [ , [ @upload_first = ] N'upload_first' ]
[ ; ]

Argumen

[ @publication = ] N'publikasi'

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

[ @subscriber = ] N'pelanggan'

Nama Pelanggan. @subscriber adalah sysname, dengan default all.

[ @subscriber_db = ] N'subscriber_db'

Nama database Pelanggan. @subscriber_db 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_reinitmergesubscription digunakan dalam replikasi penggabungan.

sp_reinitmergesubscription dapat dipanggil dari Publisher untuk menginisialisasi ulang langganan gabungan. Anda juga harus menjalankan ulang Agen Rekam Jepret.

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 push 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 @subscriptionDB AS sysname;
DECLARE @publication AS sysname;
SET @subscriptionDB = N'AdventureWorks2022Replica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2022Replica]

-- Execute at the Publisher to reinitialize the push subscription. 
-- Pending changes at the Subscrber are lost.
EXEC sp_reinitmergesubscription 
    @subscriber = $(SubServer),
    @subscriber_db = @subscriptionDB,
    @publication = @publication,
    @upload_first = N'false';
GO

-- Start the Merge Agent.

B. Menginisialisasi ulang langganan push 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 @subscriptionDB AS sysname;
DECLARE @publication AS sysname;
SET @subscriptionDB = N'AdventureWorks2022Replica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2022Replica]

-- Execute at the Publisher to reinitialize the push subscription, 
-- and upload pending changes at the Subscriber. 
EXEC sp_reinitmergesubscription 
    @subscriber = $(SubServer),
    @subscriber_db = @subscriptionDB,
    @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_reinitmergesubscription.