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.
Convenzioni 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
Cronologia modifiche
Versione | Cronologia |
---|---|
14 aprile 2006 |
|
5 dicembre 2005 |
|