sp_articlecolumn (Transact-SQL)

Usado para especificar colunas incluídas em um artigo para filtrar dados verticalmente em uma tabela publicada. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

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' ]

Argumentos

  • [ @publication=] 'publication'
    É o nome da publicação que contém esse artigo. publication é sysname, sem padrão.

  • [ @article=] 'article'
    É o nome do artigo. article é sysname, sem padrão.

  • [ @column=] 'column'
    É o nome da coluna a ser adicionada ou removida. column é sysname, com um padrão de NULL. Se for NULL, todas as colunas serão publicadas.

  • [ @operation=] 'operation'
    Especifica se as colunas devem ser adicionadas ou removidas de um artigo. operation é nvarchar(5), com um padrão de add. add marca a coluna para replicação. drop desmarca a coluna.

  • [ @refresh_synctran_procs=] refresh_synctran_procs
    Especifica se os procedimentos armazenados com suporte para assinaturas de atualização imediata são gerados para corresponderem ao número de colunas replicadas. refresh_synctran_procs é bit, com um padrão de 1. Se for 1, os procedimentos armazenados serão regenerados.

  • [ @ignore_distributor =] ignore_distributor
    Indica se esse procedimento armazenado será executado sem se conectar ao Distribuidor. ignore_distributor é bit, com um padrão de 0. Se for 0, o banco de dados deverá ser habilitado para publicação e o cache do artigo deverá ser atualizado para refletir as novas colunas replicadas por esse artigo. Se for 1, permitirá que as colunas de artigos sejam descartadas para artigos que residem em um banco de dados não publicado; só deve ser usado em situações de recuperação.

  • [ @ change_active = ] change_active
    Permite modificar as colunas em publicações que têm assinaturas. change_active é um int, com um padrão de 0. Se for 0, as colunas não serão modificadas. Se for 1, as colunas poderão ser adicionadas ou descartadas de artigos ativos que têm assinaturas.

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    Confirma que a ação tomada por esse procedimento armazenado pode invalidar um instantâneo existente. force_invalidate_snapshot é um bit, com um padrão de 0.

    0 especifica que as alterações no artigo não invalidam o instantâneo. Se o procedimento armazenado detectar que a alteração requer um novo instantâneo, ocorrerá um erro e nenhuma alteração será feita.

    1 especifica que as alterações no artigo de mesclagem podem invalidar o instantâneo e se houver assinaturas existentes que exigem um novo instantâneo, dará permissão para que o instantâneo existente seja marcado como obsoleto e um novo instantâneo seja gerado.

  • [@force_reinit_subscription = ] force_reinit_subscription
    Confirma que a ação tomada por esse procedimento armazenado pode exigir que as assinaturas existentes sejam reinicializadas. force_reinit_subscription é um bit, com um padrão de 0.

    0 especifica que as alterações no artigo não fazem com que a assinatura seja reiniciada. Se o procedimento armazenado detectar que a alteração irá requerer que as assinaturas existentes sejam reiniciadas, ocorrerá um erro e nenhuma alteração será feita. 1 especifica que as alterações no artigo fazem com que as assinaturas existentes sejam reiniciadas e dá permissão para que a reinicialização da assinatura ocorra.

  • [ @publisher= ] 'publisher'
    Especifica um Publicador que não é Microsoft SQL Server. publisher é sysname, com um padrão de NULL.

    Dica

    publisher não deve ser usado com um Editor SQL Server.

  • [ @internal= ] 'internal'
    Somente para uso interno.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_articlecolumn é usado em replicação de instantâneo e replicação transacional.

Apenas um artigo não assinado pode ser filtrado usando sp_articlecolumn.

Exemplo

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

Permissões

Somente membros da função de servidor fixa sysadmin ou db_owner podem executar sp_articlecolumn.

Consulte também

Referência

sp_addarticle (Transact-SQL)

sp_articleview (Transact-SQL)

sp_changearticle (Transact-SQL)

sp_droparticle (Transact-SQL)

sp_helparticle (Transact-SQL)

sp_helparticlecolumns (Transact-SQL)

Procedimentos armazenados de replicação (Transact-SQL)

Conceitos

Defina um Artigo

Definir e modificar um filtro de colunas

Filtrar dados publicados