Bagikan melalui


sp_dropdistpublisher (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Menjatuhkan Penerbit distribusi. Prosedur tersimpan ini dijalankan di Distributor pada database apa pun.

Konvensi sintaks transact-SQL

Sintaks

sp_dropdistpublisher
    [ @publisher = ] N'publisher'
    [ , [ @no_checks = ] no_checks ]
    [ , [ @ignore_distributor = ] ignore_distributor ]
[ ; ]

Argumen

[ @publisher = ] N'publisher'

Publisher yang akan dihilangkan. @publisher adalah sysname, tanpa default.

Catatan

Menggunakan port kustom untuk penerbit SQL Server diperkenalkan di SQL Server 2019 (15.x). Jika penerbit SQL Server dikonfigurasi dengan port kustom, maka ketika menghilangkan penerbit seperti itu di distributor, berikan nama server penerbit alih-alih <Hostname>,<PortNumber>.

[ @no_checks = ] no_checks

Menentukan apakah sp_dropdistpublisher memeriksa apakah Publisher telah menghapus instalan server sebagai Distributor. @no_checks adalah bit, dengan default .0

  • Jika 0, replikasi memverifikasi bahwa Publisher jarak jauh telah menghapus instalasi server lokal sebagai Distributor. Jika Publisher bersifat lokal, replikasi memverifikasi bahwa tidak ada objek publikasi atau distribusi yang tersisa di server lokal.

  • Jika 1, semua objek replikasi yang terkait dengan Penerbit distribusi dihilangkan meskipun Penerbit jarak jauh tidak dapat dicapai. Setelah melakukan ini, Publisher jarak jauh harus menghapus instalan replikasi menggunakan sp_dropdistributor dengan @ignore_distributor = 1.

[ @ignore_distributor = ] ignore_distributor

Menentukan apakah objek distribusi dibiarkan di Distributor saat Penerbit dihapus. @ignore_distributor adalah bit, dan bisa menjadi salah satu nilai ini:

  • 1 = objek distribusi milik @publisher tetap berada di Distributor.
  • 0 = objek distribusi untuk @publisher dibersihkan di Distributor.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_dropdistpublisher digunakan dalam semua jenis replikasi.

Saat menghilangkan Oracle Publisher, jika tidak dapat menghilangkan Publisher, sp_dropdistpublisher mengembalikan kesalahan dan objek Distributor untuk Publisher dihapus.

Contoh

-- 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".

-- Disable publishing and distribution.
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB as sysname;
SET @distributionDB = N'distribution';
SET @publisher = $(DistPubServer);
SET @publicationDB = N'AdventureWorks2022';

-- Disable the publication database.
USE [AdventureWorks2022]
EXEC sp_removedbreplication @publicationDB;

-- Remove the registration of the local Publisher at the Distributor.
USE master
EXEC sp_dropdistpublisher @publisher;

-- Delete the distribution database.
EXEC sp_dropdistributiondb @distributionDB;

-- Remove the local server as a Distributor.
EXEC sp_dropdistributor;
GO

Izin

Hanya anggota peran server tetap sysadmin yang dapat menjalankan sp_dropdistpublisher.