sp_changemergearticle (Transact-SQL)

Data aggiornamento: 14 aprile 2006

Modifica le proprietà di un articolo di tipo merge. 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_changemergearticle [ @publication = ] 'publication'
        , [ @article = ] 'article'
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

Argomenti

  • [ @publication = ] 'publication'
    Nome della pubblicazione che include l'articolo. publication è di tipo sysname e non prevede alcun valore predefinito.
  • [ @article=] 'article'
    Nome dell'articolo da modificare. article è di tipo sysname e non prevede alcun valore predefinito.
  • [ @property = ] 'property'
    Proprietà da modificare per la pubblicazione specificata. property è di tipo nvarchar(30). I possibili valori sono elencati nella tabella seguente.
  • [ @value = ] 'value'
    Nuovo valore per la proprietà specificata. value è di tipo nvarchar(1000). I possibili valori sono elencati nella tabella seguente.

    che descrive 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 di merge 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 indica che le modifiche apportate all'articolo di merge 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.

    Vedere la sezione Osservazioni per informazioni sulle proprietà che in caso di modifica richiedono la generazione di un nuovo snapshot.

  • [ @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 di merge 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 apportate all'articolo di merge causano la reinizializzazione delle sottoscrizioni esistenti e consente la reinizializzazione.

    Vedere la sezione Osservazioni per informazioni sulle proprietà che in caso di modifica richiedono la reinizializzazione di tutte le sottoscrizioni esistenti.

Osservazioni

La stored procedure sp_changemergearticle viene utilizzata per la replica di tipo merge.

Poiché sp_changemergearticle viene utilizzata per modificare le proprietà degli articoli specificate inizialmente tramite sp_addmergearticle, vedere sp_addmergearticle per ulteriori informazioni su queste proprietà.

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

  • check_permissions
  • column_tracking
  • destination_owner
  • pre_creation_cmd
  • schema_options
  • subset_filterclause

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

  • check_permissions
  • column_tracking
  • destination_owner
  • subscriber_upload_options
  • subset_filterclause

Se si imposta il valore 3 per partition_options, la rimozione dei metadati viene eseguita per ogni esecuzione dell'agente di merge e lo snapshot partizionato scade più rapidamente. Quando si utilizza questa opzione è consigliabile prendere in considerazione l'attivazione di snapshot partizionati richiesti dal Sottoscrittore. Per ulteriori informazioni, vedere Snapshot per pubblicazioni di tipo merge con filtri con parametri.

Per l'impostazione della proprietà column_tracking, se la tabella è già pubblicata in altre pubblicazioni di tipo merge, è necessario utilizzare lo stesso valore di rilevamento a livello di colonna utilizzato dagli articoli esistenti basati su questa tabella. Questo parametro è disponibile solo per gli articoli di tabelle.

Se più pubblicazioni pubblicano articoli basati sulla stessa tabella sottostante, la modifica della proprietà delete_tracking o della proprietà compensate_for_errors per un articolo causa la propagazione della stessa modifica a tutti gli altri articoli basati sulla stessa tabella.

Se l'account di accesso o l'account utente del server di pubblicazione utilizzato per il processo di merge non dispone delle autorizzazioni corrette per le tabelle, le modifiche non valide vengono registrate come conflitti.

Quando si modifica il valore di schema_option, il sistema non esegue un aggiornamento bit per bit. Ciò significa che quando si imposta un valore schema_option tramite sp_changemergearticle le impostazioni di bit esistenti potrebbero essere 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_helpmergearticle.

Tabella delle opzioni di schema valide

Nella tabella seguente vengono descritti i valori schema_optionconsentiti in base al tipo di articolo.

Tipo di articolo Valori delle opzioni di schema

func schema only

0x01 e 0x2000

indexed view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 e 0x200000

proc schema only

0x01 e 0x2000

table

Tutte le opzioni.

view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 e 0x200000

Autorizzazioni

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

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Esempio

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article = N'SalesOrderHeader';

-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO

Vedere anche

Riferimento

sp_addmergearticle (Transact-SQL)
sp_dropmergearticle (Transact-SQL)
sp_helpmergearticle (Transact-SQL)
Stored procedure per la replica (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 della spiegazione delle ulteriori restrizioni relative all'impostazione dell'opzione 0x20 per il parametro schema_option.
Contenuto modificato:
  • Aggiornamento delle informazioni relative al valore dell'opzione dello schema predefinito per gli articoli di tabella.