Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Rimuove un articolo da una pubblicazione di tipo merge. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
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 ]
[ ; ]
Argomenti
[ @publication = ] N'publication'
Nome della pubblicazione da cui eliminare un articolo. @publication è sysname, senza impostazione predefinita.
[ @article = ] N'article'
Nome dell'articolo da eliminare dalla pubblicazione specificata.
@article è sysname, senza impostazione predefinita. Se all, vengono rimossi tutti gli articoli esistenti nella pubblicazione di tipo merge specificata. Anche se @article è all, la pubblicazione deve comunque essere eliminata separatamente dall'articolo.
[ @ignore_distributor = ] ignore_distributor
Indica se questa stored procedure viene eseguita senza stabilire la connessione al server di distribuzione.
@ignore_distributor è bit, con il valore predefinito .0
[ @reserved = ] riservato
Riservato a un uso futuro.
@reserved è bit, con un valore predefinito .0
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Abilita o disabilita la funzionalità che consente di invalidare uno snapshot.
@force_invalidate_snapshot è bit, con il valore predefinito 0.
0specifica che le modifiche apportate all'articolo di merge non causano l'invalidità dello snapshot.1significa che le modifiche apportate all'articolo di merge potrebbero causare l'invalidità dello snapshot e, in tal caso, un valore di1concede l'autorizzazione per il nuovo snapshot.
[ @force_reinit_subscription = ] force_reinit_subscription
Riconosce che l'eliminazione dell'articolo potrebbe richiedere la reinizializzazione delle sottoscrizioni esistenti.
@force_reinit_subscription è bit, con un valore predefinito .0
0specifica che l'eliminazione dell'articolo non comporta la reinizializzazione della sottoscrizione.1significa che l'eliminazione dell'articolo causa la reinizializzazione delle sottoscrizioni esistenti e concede l'autorizzazione per la reinizializzazione della sottoscrizione.
[ @ignore_merge_metadata = ] ignore_merge_metadata
Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.
Valori del codice restituito
0 (esito positivo) o 1 (errore).
Osservazioni:
sp_dropmergearticle viene usato nella replica di tipo merge. Per altre informazioni sull'eliminazione di articoli, vedere Aggiungere articoli a ed eliminare articoli da pubblicazioni esistenti.
L'esecuzione sp_dropmergearticle di 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 il ruolo predefinito del database db_owner possono eseguire sp_dropmergearticle.
Esempi
Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2025 o AdventureWorksDW2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.
R. Rimuovere articoli da una pubblicazione di tipo merge
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
B. Eliminare i filtri join di merge e gli articoli correlati
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