sp_changearticle (Transact-SQL)

Data aggiornamento: 14 aprile 2006

Modifica le proprietà di un articolo in una pubblicazione transazionale o snapshot. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_changearticle [ [@publication= ] 'publication' ]
    [ , [ @article= ] 'article' ]
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

Argomenti

  • [ @publication=] 'publication'
    Nome della pubblicazione contenente l'articolo. publication è di tipo sysname e il valore predefinito è NULL.
  • [ @article=] 'article'
    Nome dell'articolo di cui modificare la proprietà. article è di tipo sysname e il valore predefinito è NULL.
  • [ @property=] 'property'
    Proprietà dell'articolo da modificare. property è di tipo nvarchar(100).
  • [ @value=] 'value'
    Nuovo valore della proprietà dell'articolo. value è di tipo nvarchar(255).

    Nella tabella seguente vengono descritte le proprietà degli articoli e i valori corrispondenti.

    Proprietà

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    Segnala che l'azione eseguita da questa stored procedure potrebbe invalidare uno snapshot esistente. force_invalidate_snapshot è di tipo bit e il valore predefinito è 0.

    0 specifica che le modifiche apportate all'articolo non invalideranno lo 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 invalidare lo snapshot e, se sono disponibili sottoscrizioni che richiedono un nuovo snapshot, consente di contrassegnare lo snapshot esistente come obsoleto e di generarne uno nuovo.

    Per informazioni sulle proprietà che, se modificate, richiedono la generazione di un nuovo snapshot, vedere la sezione Osservazioni.

  • [ **@force_reinit_subscription=]**force_reinit_subscription
    Segnala che l'azione eseguita dalla stored procedure potrebbe richiedere la reinizializzazione delle sottoscrizioni esistenti. force_reinit_subscription è di tipo bit e il 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 esistenti, viene generato un errore e non viene apportata alcuna modifica.

    1 indica che le modifiche all'articolo comportano la reinizializzazione delle sottoscrizioni esistenti e consente la reinizializzazione.

    Per informazioni sulle proprietà che, se modificate, richiedono la generazione di un nuovo snapshot, vedere la sezione Osservazioni.

  • [ @publisher= ] 'publisher'
    Specifica un server di pubblicazione non SQL Server. publisher è di tipo sysname e il valore predefinito è NULL.

    [!NOTA] Non utilizzare l'argomento publisher quando si modificano le proprietà dell'articolo in un server di pubblicazione SQL Server.

Osservazioni

La stored procedure sp_changearticle viene utilizzata in repliche snapshot e transazionali.

Quando un articolo appartiene a una pubblicazione che supporta la replica transazionale peer-to-peer, è possibile modificare solo le proprietà description, ins_cmd, upd_cmd e del_cmd.

La modifica di una delle proprietà seguenti richiede la generazione di un nuovo snapshot ed è necessario specificare il valore 1 per il parametro force_invalidate_snapshot:

  • del_cmd
  • dest_table
  • destination_owner
  • ins_cmd
  • pre_creation_cmd
  • schema_options
  • upd_cmd

La modifica di una delle proprietà seguenti richiede la reinizializzazione delle sottoscrizioni esistenti ed è necessario specificare un valore 1 per il parametro force_reinit_subscription.

  • del_cmd
  • dest_table
  • destination_owner
  • filter
  • ins_cmd
  • status
  • upd_cmd

All'interno di una pubblicazione esistente è possibile modificare un determinato articolo tramite sp_changearticle senza dover eliminare e ricreare l'intera pubblicazione.

[!NOTA] Quando si modifica il valore di schema_option, il sistema non esegue un aggiornamento bit per bit. Ciò significa che quando si imposta schema_option tramite sp_changearticle, è possibile che le impostazioni di bit esistenti vengano disattivate. Per mantenere le impostazioni esistenti, è necessario eseguire & (AND bit per bit) tra il valore da impostare e il valore corrente di schema_option, che è possibile determinare eseguendo sp_helparticle.

Opzioni di schema valide

Nella tabella seguente vengono descritti i valori consentiti di schema_option in base ai tipi di replica (indicati nella prima riga) e al tipo di articolo (indicato nella prima colonna).

Tipo di articolo Tipo di replica  

 

Transazionale

Snapshot

logbased

Tutte le opzioni

Tutte le opzioni tranne 0x02

logbased manualfilter

Tutte le opzioni

Tutte le opzioni tranne 0x02

logbased manualview

Tutte le opzioni

Tutte le opzioni tranne 0x02

indexed view logbased

Tutte le opzioni

Tutte le opzioni tranne 0x02

indexed view logbased manualfilter

Tutte le opzioni

Tutte le opzioni tranne 0x02

indexed view logbased manualview

Tutte le opzioni

Tutte le opzioni tranne 0x02

indexed view logbase manualboth

Tutte le opzioni

Tutte le opzioni tranne 0x02

proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000

serializable proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000

proc schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000

view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 e 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 e 0x80000000

func schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000

indexed view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 e 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 e 0x80000000

[!NOTA] Per pubblicazioni ad aggiornamento in coda, è necessario attivare il valore 0x80 di schema_option. I valori di schema_option supportati per le pubblicazioni non SQL Server sono i seguenti: 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000 e 0x4000.

Autorizzazioni

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

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Esempio

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));

-- Change the schema options to replicate schema with XML.
USE [AdventureWorks]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

Vedere anche

Riferimento

sp_addarticle (Transact-SQL)
sp_articlecolumn (Transact-SQL)
sp_droparticle (Transact-SQL)
sp_helparticle (Transact-SQL)
sp_helparticlecolumns (Transact-SQL)

Altre risorse

How to: View and Modify Article Properties (Replication Transact-SQL Programming)
Modifica delle proprietà di pubblicazioni e articoli

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

14 aprile 2006

Contenuto modificato:
  • Aggiornamento della descrizione del valore 0x20000000 della proprietà schema_option.

5 dicembre 2005

Nuovo contenuto
  • Aggiunta di valori mancanti per la proprietà type.
  • Documentazione delle ulteriori restrizioni relative all'impostazione dell'opzione 0x20 per il parametro schema_option.
Contenuto modificato
  • Chiarimento delle descrizioni relative alla proprietà type.
  • Correzione della dimensione del parametro property.