sp_articlecolumn (Transact-SQL)
S'applique à : SQL Server
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.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_articlecolumn
[ @publication = ] N'publication'
, [ @article = ] N'article'
[ , [ @column = ] N'column' ]
[ , [ @operation = ] N'operation' ]
[ , [ @refresh_synctran_procs = ] refresh_synctran_procs ]
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @change_active = ] change_active ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @publisher = ] N'publisher' ]
[ , [ @internal = ] internal ]
[ ; ]
Arguments
[ @publication = ] N’publication'
Nom de la publication qui contient cet article. @publication est sysname, sans valeur par défaut.
[ @article = ] N’article'
Nom de l’article. @article est sysname, sans valeur par défaut.
[ @column = ] N’column'
Nom de la colonne à ajouter ou supprimer. @column est sysname, avec la valeur par défaut NULL
. Si NULL
, toutes les colonnes sont publiées.
[ @operation = ] N’operation'
Spécifie s'il faut ajouter ou supprimer des colonnes dans un article. @operation est nvarchar(5), avec la valeur par défaut add
.
add
marque la colonne pour la réplication.drop
supprime les marques de la colonne.
[ @refresh_synctran_procs = ] refresh_synctran_procs
Indique si les procédures stockées qui prennent en charge les abonnements de mise à jour immédiate sont actualisées pour qu'il y ait correspondance avec le nombre de colonnes répliquées. @refresh_synctran_procs est bit, avec la valeur par défaut 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 connexion au serveur de distribution. @ignore_distributor est bit, avec la valeur par défaut 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 ; elles doivent être utilisées uniquement dans les situations de récupération.
[ @change_active = ] change_active
Autorise la modification des colonnes dans les publications possédant des abonnements. @change_active est int, avec la valeur par défaut 0
.
- Si
0
, les colonnes ne sont pas modifiées. - Si
1
, les colonnes peuvent être ajoutées ou supprimées d’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 bit, avec la valeur par défaut 0
.
0
spécifie que les modifications apportées à l’article n’entraînent pas l’invalidation 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 rendre l’instantané non valide et, s’il existe des abonnements existants qui nécessitent un nouvel instantané, donne l’autorisation de marquer l’instantané existant comme obsolète et un nouvel instantané généré.
[ @force_reinit_subscription = ] force_reinit_subscription
Confirme que l'action entreprise par cette procédure stockée peut nécessiter la réinitialisation des abonnements existants. @force_reinit_subscription est bit, avec la valeur par défaut 0
.
0
spécifie que les modifications apportées à l’article n’entraînent 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 autorisent la réinitialisation de l’abonnement.
[ @publisher = ] N’publisher'
Spécifie un serveur de publication non-SQL Server. @publisher est sysname, avec la valeur par défaut NULL
.
@publisher ne doit pas être utilisé avec un serveur de publication SQL Server.
[ @internal = ] interne
Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
Valeurs des codes de retour
0
(réussite) or 1
(échec).
Notes
sp_articlecolumn
est utilisé dans la réplication d’instantanés et la réplication transactionnelle.
Seul un article désinscription peut être filtré à l’aide sp_articlecolumn
de .
Exemples
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 s’exécuter sp_articlecolumn
.
Contenu connexe
- 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)