sp_dropmergearticle (Transact-SQL)

Quita un artículo de una publicación de mezcla. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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 ]

Argumentos

  • [ @publication=] 'publication'
    Es el nombre de la publicación de la que se va a quitar un artículo. publicationes de tipo sysname y no tiene ningún valor predeterminado.

  • [ @article=] 'article'
    Es el nombre del artículo que se va a quitar de la publicación especificada. articlees de tipo sysname y no tiene ningún valor predeterminado. Si es all, se quitarán todos los artículos existentes en la publicación de mezcla especificada. Aunque article sea all, la publicación debe quitarse de forma independiente del artículo.

  • [ @ignore_distributor=] ignore_distributor
    Indica si este procedimiento almacenado se ejecuta sin conectarse al distribuidor. ignore_distributor es de tipo bit y su valor predeterminado es 0.

  • [ @reserved=] reserved
    Se reserva para su uso futuro. reserved es de tipo nvarchar(20) y su valor predeterminado es NULL.

  • [ @force_invalidate_snapshot=] force_invalidate_snapshot
    Habilita o deshabilita la posibilidad de invalidar una instantánea. force_invalidate_snapshot es de tipo bit y su valor predeterminado es 0.

    0 especifica que los cambios en el artículo de mezcla no invalidarán la instantánea.

    1 significa que, al cambiar un artículo de mezcla, la instantánea puede quedar invalidada y, en tal caso, el valor 1 concede el permiso necesario para que se produzca la nueva instantánea.

  • [ @force_reinit_subscription = ] force_reinit_subscription
    Confirma que para quitar el artículo deben reinicializarse las suscripciones existentes. force_reinit_subscription es de tipo bit y su valor predeterminado es 0.

    0 especifica que al quitar el artículo no se reinicializará la suscripción.

    1 indica que al quitar el artículo se reinicializarán las suscripciones existentes, y concede permiso para esta reinicialización.

  • [ @ignore_merge_metadata= ] ignore_merge_metadata
    Exclusivamente para uso interno.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

sp_dropmergearticle se utiliza en la réplica de mezcla. Para obtener más información sobre cómo quitar artículos, vea Agregar y quitar artículos de publicaciones existentes.

Al ejecutar sp_dropmergearticle para quitar un artículo de una publicación no se quita el objeto de la base de datos de publicaciones ni se quita el objeto correspondiente de la base de datos de suscripciones. Si es necesario, utilice DROP <object> para quitar estos objetos manualmente.

Ejemplo

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

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 [AdventureWorks2008R2]
EXEC sp_dropmergearticle 
  @publication = @publication, 
  @article = @article1,
  @force_invalidate_snapshot = 1;
EXEC sp_dropmergearticle 
  @publication = @publication, 
  @article = @article2,
  @force_invalidate_snapshot = 1;
GO

Permisos

Sólo los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden ejecutar sp_dropmergearticle.