sp_dropmergearticle (T-SQL)
Berlaku untuk: SQL Server
Menghapus artikel dari publikasi gabungan. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.
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, nilai1
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 Transact-SQL dalam artikel ini menggunakan AdventureWorks2022
database sampel atau AdventureWorksDW2022
, yang dapat Anda unduh dari halaman beranda Sampel Microsoft SQL Server dan Proyek Komunitas.
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';
EXEC sp_dropmergearticle @publication = @publication,
@article = @article1,
@force_invalidate_snapshot = 1;
EXEC sp_dropmergearticle @publication = @publication,
@article = @article2,
@force_invalidate_snapshot = 1;
GO
B. Jatuhkan filter gabungan gabungan dan artikel terkait
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.
EXEC 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.
EXEC 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.
EXEC sp_dropmergearticle @publication = @publication,
@article = @table3,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the SalesOrderHeader table.
EXEC sp_dropmergearticle @publication = @publication,
@article = @table2,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the Employee table.
EXEC sp_dropmergearticle @publication = @publication,
@article = @table1,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO