sp_articlecolumn (Transact-SQL)

S’applique à : SQL Server (toutes les versions prises en charge)

Permet de spécifier les colonnes incluses dans un article pour filtrer verticalement des données dans une table publiée. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.

Topic link iconConventions de la syntaxe Transact-SQL

Syntaxe

  
sp_articlecolumn [ @publication = ] 'publication'  
        , [ @article = ] 'article'  
    [ , [ @column = ] 'column' ]  
    [ , [ @operation = ] 'operation' ]  
    [ , [ @refresh_synctran_procs = ] refresh_synctran_procs ]  
    [ , [ @ignore_distributor = ] ignore_distributor ]  
    [ , [ @change_active = ] change_actve ]  
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]  
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]  
    [ , [ @publisher = ] 'publisher' ]  
    [ , [ @internal = ] 'internal' ]  

Arguments

[ @publication = ] 'publication' Nom de la composition qui contient cet article. la publication est sysname, sans valeur par défaut.

[ @article = ] 'article' Nom de l’article. l’article est sysname, sans valeur par défaut.

[ @column = ] 'column' Nom de la colonne à ajouter ou supprimer. colonne est sysname, avec une valeur par défaut null. Si la valeur est NULL, toutes les colonnes sont publiées.

[ @operation = ] 'operation' Spécifie s’il faut ajouter ou supprimer des colonnes dans un article. l’opération est nvarchar(5), avec une valeur par défaut d’ajout. ajoutez des marques de la colonne pour la réplication. supprime les filigranes de la colonne.

[ @refresh_synctran_procs = ] refresh_synctran_procs Spécifie si les procédures stockées prenant en charge les abonnements à mise à jour immédiate sont régénérées pour correspondre au nombre de colonnes répliquées. refresh_synctran_procs est bit, avec une valeur par défaut de 1. Si 1, les procédures stockées sont régénérées.

[ @ignore_distributor = ] ignore_distributor Indique si cette procédure stockée s’exécute sans se connecter au serveur de distribution. ignore_distributor est bit, avec une valeur par défaut de 0. Si 0, la base de données doit être activée pour la publication et le cache d’article doit être actualisé pour refléter les nouvelles colonnes répliquées par l’article. Si 1, autorise la suppression des colonnes d’article pour les articles qui résident dans une base de données non publiée ; doit être utilisé uniquement dans les situations de récupération.

[ @change_active = ] change_active Permet de modifier les colonnes des publications qui ont des abonnements. change_active est un int avec une valeur par défaut de 0. Si 0, les colonnes ne sont pas modifiées. Si 1, les colonnes peuvent être ajoutées ou supprimées des articles actifs qui ont des abonnements.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot Reconnaît que l’action effectuée par cette procédure stockée peut invalider un instantané existant. force_invalidate_snapshot est un peu, avec une valeur par défaut de 0.

0 spécifie que les modifications apportées à l’article ne provoquent pas l’échec de l’instantané. Si la procédure stockée détecte que la modification requiert un nouvel instantané, une erreur se produit et aucune modification n'est effectuée.

1 spécifie que les modifications apportées à l’article peuvent entraîner l’échec de l’instantané et, s’il existe des abonnements existants nécessitant un nouvel instantané, donne l’autorisation de marquer l’instantané existant comme obsolète et d’un nouvel instantané généré.

[@force_reinit_subscription = ] force_reinit_subscription
Reconnaît que l’action effectuée par cette procédure stockée peut exiger que les abonnements existants soient réinitialisés. force_reinit_subscription est un peu, avec une valeur par défaut de 0.

0 spécifie que les modifications apportées à l’article ne provoquent pas la réinitialisation de l’abonnement. Si la procédure stockée détecte que la modification requiert la réinitialisation des abonnements, une erreur se produit et aucune modification n'est effectuée. 1 spécifie que les modifications apportées à l’article entraînent la réinitialisation des abonnements existants et donnent l’autorisation de réinitialisation de l’abonnement.

[ @publisher = ] 'publisher'Spécifie un serveur de publication non microsoft SQL Server. publisher est sysname, avec une valeur par défaut null.

Notes

l’éditeur ne doit pas être utilisé avec un serveur de publication SQL Server.

[ @internal = ] 'internal' Utilisation interne uniquement.

Codet de retour

0 (réussite) ou 1 (échec)

Remarques

sp_articlecolumn est utilisé dans la réplication des instantanés et la réplication transactionnelle.

Seul un article désinscrit peut être filtré à l’aide de sp_articlecolumn.

Exemple

DECLARE @publication    AS sysname;
DECLARE @table AS sysname;
DECLARE @filterclause AS nvarchar(500);
DECLARE @filtername AS nvarchar(386);
DECLARE @schemaowner AS sysname;
SET @publication = N'AdvWorksProductTran'; 
SET @table = N'Product';
SET @filterclause = N'[DiscontinuedDate] IS NULL'; 
SET @filtername = N'filter_out_discontinued';
SET @schemaowner = N'Production';

-- Add a horizontally and vertically filtered article for the Product table.
-- Manually set @schema_option to ensure that the Production schema 
-- is generated at the Subscriber (0x8000000).
EXEC sp_addarticle 
    @publication = @publication, 
    @article = @table, 
    @source_object = @table,
    @source_owner = @schemaowner, 
    @schema_option = 0x80030F3,
    @vertical_partition = N'true', 
    @type = N'logbased',
    @filter_clause = @filterclause;

-- (Optional) Manually call the stored procedure to create the 
-- horizontal filtering stored procedure. Since the type is 
-- 'logbased', this stored procedures is executed automatically.
EXEC sp_articlefilter 
    @publication = @publication, 
    @article = @table, 
    @filter_clause = @filterclause, 
    @filter_name = @filtername;

-- Add all columns to the article.
EXEC sp_articlecolumn 
    @publication = @publication, 
    @article = @table;

-- Remove the DaysToManufacture column from the article
EXEC sp_articlecolumn 
    @publication = @publication, 
    @article = @table, 
    @column = N'DaysToManufacture', 
    @operation = N'drop';

-- (Optional) Manually call the stored procedure to create the 
-- vertical filtering view. Since the type is 'logbased', 
-- this stored procedures is executed automatically.
EXEC sp_articleview 
    @publication = @publication, 
    @article = @table,
    @filter_clause = @filterclause;
GO

Autorisations

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

Voir aussi

Définir un article
Définir et modifier un filtre de colonne
Filtrer des données publiées
sp_addarticle (Transact-SQL)
sp_articleview (Transact-SQL)
sp_changearticle (Transact-SQL)
sp_droparticle (Transact-SQL)
sp_helparticle (Transact-SQL)
sp_helparticlecolumns (Transact-SQL)
Procédures stockées de réplication (Transact-SQL)