sp_dropmergearticle (Transact-SQL)
Si applica a: SQL Server (tutte le versioni supportate)
Rimuove un articolo da una pubblicazione di tipo merge. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_dropmergearticle [ @publication= ] 'publication'
, [ @article= ] '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 ]
Argomenti
[ @publication = ] 'publication'
Nome della pubblicazione da cui eliminare un articolo. publication è di tipo sysname, senza alcun valore predefinito.
[ @article = ] 'article'
Nome dell'articolo da eliminare dalla pubblicazione specificata. article è sysname, senza alcun valore predefinito. Se tutti , tutti gli articoli esistenti nella pubblicazione di tipo merge specificata vengono rimossi. Anche se l'articolo è tutto, la pubblicazione deve comunque essere eliminata separatamente dall'articolo.
[ @ignore_distributor = ] ignore_distributor
Indica se questa stored procedure viene eseguita senza connettersi al server di distribuzione. ignore_distributor è di tipo bit, con il valore predefinito 0.
[ @reserved = ] reserved
È riservato per un uso futuro. reserved è di tipo nvarchar(20) e il valore predefinito è NULL.
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Abilita o disabilita la possibilità di invalidare uno snapshot. force_invalidate_snapshot è un bit, con un valore predefinito 0.
0 specifica che le modifiche apportate all'articolo di merge non causano l'invalido dello snapshot.
1 indica che le modifiche all'articolo di merge possono causare l'invalida dello snapshot e, in tal caso, il valore 1 concede l'autorizzazione per l'esecuzione del nuovo snapshot.
[ @force_reinit_subscription = ] force_reinit_subscription
Conferma che l'eliminazione dell'articolo richiede la reinizializzazione delle sottoscrizioni esistenti. force_reinit_subscription è un bit, con un valore predefinito di 0.
0 specifica che l'eliminazione dell'articolo non causa la reinizializzazione della sottoscrizione.
1 indica che l'eliminazione dell'articolo comporta la reinizializzazione delle sottoscrizioni esistenti e concede l'autorizzazione per la reinizializzazione della sottoscrizione.
[ @ignore_merge_metadata = ] ignore_merge_metadata
Solo per uso interno.
Valori del codice restituito
0 (esito positivo) o 1 (esito negativo)
Commenti
sp_dropmergearticle utilizzato nella replica di tipo merge. Per altre informazioni sull'eliminazione di articoli, vedere Aggiungere ed eliminare articoli da pubblicazioni esistenti.
L'sp_dropmergearticle per eliminare un articolo da una pubblicazione non rimuove l'oggetto dal database di pubblicazione o dall'oggetto corrispondente dal database di sottoscrizione. Utilizzare DROP <object>
per rimuovere questi oggetti manualmente, se necessario.
Autorizzazioni
Solo i membri del ruolo predefinito del server sysadmin o del db_owner predefinito del database possono eseguire sp_dropmergearticle.
Esempio
DECLARE @publication AS sysname;
DECLARE @article1 AS sysname;
DECLARE @article2 AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article1 = N'SalesOrderDetail';
SET @article2 = N'SalesOrderHeader';
-- Remove articles from a merge publication.
USE [AdventureWorks]
EXEC sp_dropmergearticle
@publication = @publication,
@article = @article1,
@force_invalidate_snapshot = 1;
EXEC sp_dropmergearticle
@publication = @publication,
@article = @article2,
@force_invalidate_snapshot = 1;
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;
-- Drops 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;
-- Drops the article for the SalesOrderDetail table.
EXEC sp_dropmergearticle
@publication = @publication,
@article = @table3,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drops the article for the SalesOrderHeader table.
EXEC sp_dropmergearticle
@publication = @publication,
@article = @table2,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drops the article for the Employee table.
EXEC sp_dropmergearticle
@publication = @publication,
@article = @table1,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO
Vedere anche
Eliminare un articolo
Aggiungere ed eliminare articoli in pubblicazioni esistenti
sp_addmergearticle (Transact-SQL)
sp_changemergearticle (Transact-SQL)
sp_helpmergearticle (Transact-SQL)
Stored procedure per la replica (Transact-SQL)