sp_dropmergearticle (Transact-SQL)

Supprime un article d'une publication de fusion. Cette procédure stockée est exécutée au niveau du serveur de publication dans la base de données de publication.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

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 ]

Arguments

  • [ @publication=] 'publication'
    Nom de la publication dans laquelle il faut supprimer un article. publicationest de type sysname, sans valeur par défaut.

  • [ @article=] 'article'
    Nom de l'article à supprimer dans la publication spécifiée. articleest de type sysname, sans valeur par défaut. Si la valeur est all, tous les articles existant dans la publication de fusion indiquée seront supprimés. Même si article a la valeur all, la publication et l'article doivent toujours être supprimés séparément l'un de l'autre.

  • [ @ignore_distributor=] ignore_distributor
    Indique si cette procédure stockée est exécutée sans se connecter au serveur de distribution. ignore_distributor est de type bit, avec 0 comme valeur par défaut.

  • [ @reserved=] reserved
    Réservé à un usage futur. reserved est de type nvarchar(20), avec NULL comme valeur par défaut.

  • [ @force_invalidate_snapshot=] force_invalidate_snapshot
    Active ou désactive la possibilité d'invalider une capture instantanée. force_invalidate_snapshot est de type bit, avec 0 comme valeur par défaut.

    0 indique que les modifications apportées à l'article de fusion n'invalident pas la capture instantanée.

    1 signifie que les modifications apportées à l'article de fusion peuvent invalider la capture instantanée, auquel cas la valeur 1 autorise la nouvelle capture instantanée.

  • [ @force_reinit_subscription = ] force_reinit_subscription
    Confirme que la suppression de l'article nécessite la réinitialisation des abonnements existants. force_reinit_subscription est de type bit, avec 0 comme valeur par défaut.

    0 indique que la suppression de l'article n'entraîne pas la réinitialisation de l'abonnement.

    1 indique que la suppression de l'article entraîne la réinitialisation des abonnements existants et autorise cette réinitialisation.

  • [ @ignore_merge_metadata= ] ignore_merge_metadata
    À usage interne uniquement.

Valeurs des codes renvoyés

0 (succès) ou 1 (échec)

Notes

La procédure sp_dropmergearticle est utilisée dans la réplication de fusion. Pour plus d'informations sur la suppression d'articles, consultez Ajout et suppression d'articles de publications existantes.

L'exécution de la procédure sp_dropmergearticle en vue de supprimer un article d'une publication n'entraîne pas la suppression de l'objet de la base de données de publication ou de l'objet correspondant de la base de données d'abonnement. Utilisez DROP <object> pour supprimer manuellement ces objets le cas échéant.

Exemple

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

Autorisations

Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter la procédure sp_dropmergearticle.