Condividi tramite


sp_articlecolumn (Transact-SQL)

Si applica a: SQL Server

Consente di specificare le colonne incluse in un articolo in modo da applicare un filtro verticale ai dati in una tabella pubblicata. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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 ]
[ ; ]

Argomenti

[ @publication = ] N'publication'

Nome della pubblicazione che contiene questo articolo. @publication è sysname, senza impostazione predefinita.

[ @article = ] N'article'

Nome dell'articolo. @article è sysname, senza impostazione predefinita.

[ @column = ] N'column'

Nome della colonna da aggiungere o eliminare. @column è sysname, con un valore predefinito .NULL Se NULL, vengono pubblicate tutte le colonne.

[ @operation = ] N'operation'

Specifica se aggiungere o eliminare colonne in un articolo. @operation è nvarchar(5), con il valore predefinito add.

  • add contrassegna la colonna per la replica.
  • drop annulla il contrassegno della colonna.

[ @refresh_synctran_procs = ] refresh_synctran_procs

Specifica se le stored procedure che supportano le sottoscrizioni ad aggiornamento immediato vengono rigenerate in modo da includere il numero di colonne replicato. @refresh_synctran_procs è bit, con il valore predefinito 1. Se 1, le stored procedure vengono rigenerate.

[ @ignore_distributor = ] ignore_distributor

Indica se la stored procedure viene eseguita senza stabilire la connessione al server di distribuzione. @ignore_distributor è bit, con il valore predefinito .0

  • Se 0, il database deve essere abilitato per la pubblicazione e la cache degli articoli deve essere aggiornata per riflettere le nuove colonne replicate dall'articolo.
  • Se 1, consente di eliminare le colonne di articolo per gli articoli che risiedono in un database non pubblicato. È consigliabile utilizzarle solo in situazioni di ripristino.

[ @change_active = ] change_active

Consente di modificare le colonne delle pubblicazioni a cui sono associate sottoscrizioni. @change_active è int, con un valore predefinito .0

  • Se 0, le colonne non vengono modificate.
  • Se 1, le colonne possono essere aggiunte o eliminate da articoli attivi con sottoscrizioni.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Segnala che l'azione eseguita da questa stored procedure potrebbe invalidare uno snapshot esistente. @force_invalidate_snapshot è bit, con il valore predefinito 0.

  • 0 specifica che le modifiche apportate all'articolo non causano l'invalidità dello snapshot. Se la stored procedure rileva che la modifica richiede un nuovo snapshot, viene generato un errore e non viene apportata alcuna modifica.
  • 1 specifica che le modifiche apportate all'articolo potrebbero causare l'invalidità dello snapshot e, se sono presenti sottoscrizioni esistenti che richiedono un nuovo snapshot, concede l'autorizzazione per contrassegnare lo snapshot esistente come obsoleto e un nuovo snapshot generato.

[ @force_reinit_subscription = ] force_reinit_subscription

Segnala che l'azione eseguita dalla stored procedure potrebbe richiedere la reinizializzazione delle sottoscrizioni esistenti. @force_reinit_subscription è bit, con un valore predefinito .0

  • 0 specifica che le modifiche apportate all'articolo non causano la reinizializzazione della sottoscrizione. Se la stored procedure rileva che la modifica richiede la reinizializzazione delle sottoscrizioni, viene generato un errore e non viene apportata alcuna modifica.
  • 1 specifica che le modifiche apportate all'articolo causano la reinizializzazione delle sottoscrizioni esistenti e concede l'autorizzazione per la reinizializzazione della sottoscrizione.

[ @publisher = ] N'publisher'

Specifica un server di pubblicazione non SQL Server. @publisher è sysname, con un valore predefinito .NULL

@publisher non deve essere usato con un server di pubblicazione di SQL Server.

[ @internal = ] internal

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_articlecolumn viene usato nella replica snapshot e nella replica transazionale.

È possibile filtrare solo un articolo annullato usando sp_articlecolumn.

Esempi

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

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin o db_owner ruolo predefinito del database possono eseguire sp_articlecolumn.