Bagikan melalui


sp_dropmergearticle (T-SQL)

Berlaku untuk:SQL Server

Menghapus artikel dari publikasi gabungan. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.

Konvensi sintaks transact-SQL

Sintaks

sp_dropmergearticle
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @reserved = ] reserved ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @ignore_merge_metadata = ] ignore_merge_metadata ]
[ ; ]

Argumen

[ @publication = ] N'publikasi'

Nama publikasi untuk menjatuhkan artikel. @publication adalah sysname, tanpa default.

[ @article = ] N'article'

Nama artikel untuk dihilangkan dari publikasi yang diberikan. @article adalah sysname, tanpa default. Jika all, semua artikel yang ada dalam publikasi penggabungan yang ditentukan akan dihapus. Bahkan jika @article adalah all, publikasi masih harus dihilangkan secara terpisah dari artikel.

[ @ignore_distributor = ] ignore_distributor

Menunjukkan apakah prosedur tersimpan ini dijalankan tanpa menyambungkan ke Distributor. @ignore_distributor adalah bit, dengan default 0.

[ @reserved = ] dicadangkan

Disiapkan untuk penggunaan masa mendatang. @reserved adalah bit, dengan default 0.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Mengaktifkan atau menonaktifkan kemampuan untuk membatalkan rekam jepret. @force_invalidate_snapshot adalah bit, dengan default 0.

  • 0 menentukan bahwa perubahan pada artikel penggabungan tidak menyebabkan rekam jepret tidak valid.

  • 1 berarti bahwa perubahan pada artikel penggabungan dapat menyebabkan rekam jepret tidak valid, dan jika demikian, nilai 1 memberikan izin untuk rekam jepret baru terjadi.

[ @force_reinit_subscription = ] force_reinit_subscription

Mengakui bahwa menghapus artikel mengharuskan langganan yang ada untuk diinisialisasi ulang. @force_reinit_subscription adalah bit, dengan default 0.

  • 0 menentukan bahwa menghapus artikel tidak menyebabkan langganan diinisialisasi ulang.

  • 1 berarti bahwa menjatuhkan artikel menyebabkan langganan yang ada diinisialisasi ulang, dan memberikan izin untuk reinitialisasi langganan terjadi.

[ @ignore_merge_metadata = ] ignore_merge_metadata

Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_dropmergearticle digunakan dalam replikasi penggabungan. Untuk informasi selengkapnya tentang menjatuhkan artikel, lihat Menambahkan Artikel ke dan Menghapus Artikel dari Publikasi yang Sudah Ada.

Menjalankan sp_dropmergearticle untuk menghilangkan artikel dari publikasi tidak menghapus objek dari database publikasi atau objek terkait dari database langganan. Gunakan DROP <object> untuk menghapus objek ini secara manual jika perlu.

Izin

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

Contoh

Sampel kode dalam artikel ini menggunakan database sampel AdventureWorks2025 atau AdventureWorksDW2025, yang dapat Anda unduh dari halaman beranda Sampel dan Proyek Komunitas Microsoft SQL Server.

J. Menghapus artikel dari publikasi gabungan

USE [AdventureWorks2022];
GO

DECLARE @publication AS SYSNAME;
DECLARE @article1 AS SYSNAME;
DECLARE @article2 AS SYSNAME;

SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article1 = N'SalesOrderDetail';
SET @article2 = N'SalesOrderHeader';

EXECUTE sp_dropmergearticle
    @publication = @publication,
    @article = @article1,
    @force_invalidate_snapshot = 1;

EXECUTE sp_dropmergearticle
    @publication = @publication,
    @article = @article2,
    @force_invalidate_snapshot = 1;
GO
USE [AdventureWorks2022];
GO

DECLARE @publication AS SYSNAME;
DECLARE @table1 AS SYSNAME;
DECLARE @table2 AS SYSNAME;
DECLARE @table3 AS SYSNAME;
DECLARE @salesschema AS SYSNAME;
DECLARE @hrschema AS SYSNAME;
DECLARE @filterclause AS NVARCHAR (1000);

SET @publication = N'AdvWorksSalesOrdersMerge';
SET @table1 = N'Employee';
SET @table2 = N'SalesOrderHeader';
SET @table3 = N'SalesOrderDetail';
SET @salesschema = N'Sales';
SET @hrschema = N'HumanResources';
SET @filterclause = N'Employee.LoginID = HOST_NAME()';

-- Drop the merge join filter between SalesOrderHeader and SalesOrderDetail.
EXECUTE sp_dropmergefilter
    @publication = @publication,
    @article = @table3,
    @filtername = N'SalesOrderDetail_SalesOrderHeader',
    @force_invalidate_snapshot = 1,
    @force_reinit_subscription = 1;

-- Drop the merge join filter between Employee and SalesOrderHeader.
EXECUTE sp_dropmergefilter
    @publication = @publication,
    @article = @table2,
    @filtername = N'SalesOrderHeader_Employee',
    @force_invalidate_snapshot = 1,
    @force_reinit_subscription = 1;

-- Drop the article for the SalesOrderDetail table.
EXECUTE sp_dropmergearticle
    @publication = @publication,
    @article = @table3,
    @force_invalidate_snapshot = 1,
    @force_reinit_subscription = 1;

-- Drop the article for the SalesOrderHeader table.
EXECUTE sp_dropmergearticle
    @publication = @publication,
    @article = @table2,
    @force_invalidate_snapshot = 1,
    @force_reinit_subscription = 1;

-- Drop the article for the Employee table.
EXECUTE sp_dropmergearticle
    @publication = @publication,
    @article = @table1,
    @force_invalidate_snapshot = 1,
    @force_reinit_subscription = 1;
GO