sp_mergearticlecolumn (Transact-SQL)sp_mergearticlecolumn (Transact-SQL)

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Partitionne une publication de fusion verticalement.Partitions a merge publication vertically. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.This stored procedure is executed at the Publisher on the publication database.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

  
sp_mergearticlecolumn [ @publication = ] 'publication'  
        , [ @article = ] 'article'  
    [ , [ @column = ] 'column'  
    [ , [ @operation = ] 'operation'   
    [ , [ @schema_replication = ] 'schema_replication' ]  
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]   
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]   

ArgumentsArguments

[ @publication = ] 'publication' Est le nom de la publication.[ @publication = ] 'publication' Is the name of the publication. publication est sysname, sans valeur par défaut.Publication is sysname, with no default.

[ @article = ] 'article' Est le nom de l’article dans la publication.[ @article = ] 'article' Is the name of the article in the publication. article est sysname, sans valeur par défaut.article is sysname, with no default.

[ @column = ] 'column' Identifie les colonnes sur lequel créer la partition verticale.[ @column = ] 'column' Identifies the columns on which to create the vertical partition. colonne est sysname, avec NULL comme valeur par défaut.column is sysname, with a default of NULL. Si la valeur NULL est spécifiée et que @operation = N'add', toutes les colonnes de la table source sont ajoutées à l'article par défaut.If NULL and @operation = N'add', all columns in the source table are added to the article by default. colonne ne peut pas être NULL lorsque opération a la valeur drop.column cannot be NULL when operation is set to drop. Pour exclure des colonnes à partir d’un article, exécutez sp_mergearticlecolumn et spécifiez colonne et @operation = N'drop' pour chaque colonne à supprimer à partir du spécifié article.To exclude columns from an article, execute sp_mergearticlecolumn and specify column and @operation = N'drop' for each column to be removed from the specified article.

[ @operation = ] 'operation' Est l’état de réplication.[ @operation = ] 'operation' Is the replication status. opération est nvarchar (4) , avec une valeur par défaut de l’ajouter.operation is nvarchar(4), with a default of ADD. ajouter marque la colonne pour la réplication.add marks the column for replication. DROP supprime la colonne.drop clears the column.

[ @schema_replication = ] 'schema_replication' Spécifie qu’une modification de schéma sera propagée lors de l’Agent de fusion s’exécute.[ @schema_replication = ] 'schema_replication' Specifies that a schema change will be propagated when the Merge Agent runs. schema_replication est nvarchar (5) , avec FALSE comme valeur par défaut.schema_replication is nvarchar(5), with a default of FALSE.

Notes

Uniquement FALSE est pris en charge pour schema_replication.Only FALSE is supported for schema_replication.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot Active ou désactive la possibilité d’invalider un instantané.[ @force_invalidate_snapshot = ] force_invalidate_snapshot Enables or disables the ability to have a snapshot invalidated. àce_invalidate_snapshot est un bits, avec une valeur par défaut 0.force_invalidate_snapshot is a bit, with a default of 0.

0 Spécifie que les modifications apportées à l’article de fusion n’entraînent pas l’instantané n’est pas valide.0 specifies that changes to the merge article will not cause the snapshot to be invalid.

1 Spécifie que les modifications apportées à l’article de fusion peuvent invalider l’instantané n’est pas valide, et si c’est le cas, la valeur 1 autorise le nouvel instantané de se produire.1 specifies that changes to the merge article may cause the snapshot to be invalid, and if that is the case, a value of 1 gives permission for the new snapshot to occur.

[ @force_reinit_subscription = ]force_reinit_subscription_ Active ou désactive la possibilité de réinitialiser l’abonnement.[ @force_reinit_subscription = ]force_reinit_subscription_ Enables or disables the ability to have the subscription reinitializated. àce_reinit_subscription est un peu avec une valeur par défaut 0.force_reinit_subscription is a bit with a default of 0.

0 Spécifie que les modifications apportées à l’article de fusion n’entraînent pas la réinitialisation de l’abonnement.0 specifies that changes to the merge article will not cause the subscription to be reinitialized.

1 Spécifie que les modifications apportées à l’article de fusion peuvent invalider l’abonnement pour réinitialisation, et si c’est le cas, la valeur 1 autorise la réinitialisation des abonnements se produise.1 specifies that changes to the merge article may cause the subscription to be reinitialized, and if that is the case, a value of 1 gives permission for the subscription reinitialization to occur.

Valeurs des codes de retourReturn Code Values

0 (réussite) ou 1 (échec)0 (success) or 1 (failure)

NotesRemarks

sp_mergearticlecolumn est utilisé dans la réplication de fusion.sp_mergearticlecolumn is used in merge replication.

La colonne d'identité ne peut pas être supprimée de l'article si la gestion automatique des plages d'identité est utilisée.An identity column cannot be dropped from the article if automatic identity range management is being used. Pour plus d’informations, consultez Répliquer des colonnes d’identité.For more information, see Replicate Identity Columns.

Si une application définit une nouvelle partition verticale après la création de l'instantané initial, un nouvel instantané doit être généré et réappliqué à chaque abonnement.If an application sets a new vertical partition after the initial snapshot is created, a new snapshot must be generated and reapplied to each subscription. Les instantanés sont appliqués lors de l'exécution de l'instantané planifié suivant et de l'Agent de distribution ou de fusion.Snapshots are applied when the next scheduled snapshot and distribution or merge agent run.

Si le suivi de lignes est utilisé pour la détection de conflits (valeur par défaut), la table de base peut inclure 1 024 colonnes au maximum, mais les colonnes doivent être filtrées à partir de l'article afin que 246 colonnes au maximum soient publiées.If row tracking is used for conflict detection (the default), the base table can include a maximum of 1,024 columns, but columns must be filtered from the article so that a maximum of 246 columns is published. Si le suivi de colonnes est utilisé, la table de base peut inclure 246 colonnes au maximum.If column tracking is used, the base table can include a maximum of 246 columns.

ExempleExample

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()';

-- Add a filtered article for the Employee table.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table1, 
  @source_object = @table1, 
  @type = N'table', 
  @source_owner = @hrschema,
  @schema_option = 0x0004CF1,
  @description = N'article for the Employee table',
  @subset_filterclause = @filterclause;

-- Add an article for the SalesOrderHeader table that is filtered
-- based on Employee and horizontally filtered.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table2, 
  @source_object = @table2, 
  @type = N'table', 
  @source_owner = @salesschema, 
  @vertical_partition = N'true',
  @schema_option = 0x0034EF1,
  @description = N'article for the SalesOrderDetail table';

-- Add an article for the SalesOrderDetail table that is filtered
-- based on SaledOrderHeader.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table3, 
  @source_object = @table3, 
  @source_owner = @salesschema,
  @description = 'article for the SalesOrderHeader table', 
  @identityrangemanagementoption = N'auto', 
  @pub_identity_range = 100000, 
  @identity_range = 100, 
  @threshold = 80,
  @schema_option = 0x0004EF1;

-- Add all columns to the SalesOrderHeader article.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Remove the credit card Approval Code column.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @column = N'CreditCardApprovalCode', 
  @operation = N'drop', 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between Employee and SalesOrderHeader.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table2, 
  @filtername = N'SalesOrderHeader_Employee', 
  @join_articlename = @table1, 
  @join_filterclause = N'Employee.BusinessEntityID = SalesOrderHeader.SalesPersonID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between SalesOrderHeader and SalesOrderDetail.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table3, 
  @filtername = N'SalesOrderDetail_SalesOrderHeader', 
  @join_articlename = @table2, 
  @join_filterclause = N'SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;
GO

AutorisationsPermissions

Seuls les membres de la sysadmin rôle serveur fixe ou db_owner rôle de base de données fixe peuvent exécuter sp_mergearticlecolumn.Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_mergearticlecolumn.

Voir aussiSee Also

Définir et modifier un filtre de jointure entre des articles de fusion Define and Modify a Join Filter Between Merge Articles
Définir et modifier un filtre de lignes paramétrable pour un article de fusion Define and Modify a Parameterized Row Filter for a Merge Article
Filtrer des données publiées Filter Published Data
Procédures stockées de réplication (Transact-SQL)Replication Stored Procedures (Transact-SQL)