Condividi tramite


sp_changemergepublication (Transact-SQL)

Modifica le proprietà di una pubblicazione 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_changemergepublication [ @publication= ] 'publication'
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

Argomenti

  • [ @publication=\] 'publication'
    Nome della pubblicazione. publication è di tipo sysname e non prevede alcun valore predefinito.

  • [ @property=\] 'property'
    Proprietà da modificare per la pubblicazione specificata. property è di tipo sysname. I valori possibili sono elencati nella tabella seguente.

  • [ @value=\] 'value'
    Nuovo valore per la proprietà specificata. value è di tipo nvarchar(255). I valori possibili sono elencati nella tabella seguente.

    Nella tabella seguente vengono descritte le proprietà della pubblicazione che è possibile modificare e le limitazioni previste per i valori di tali proprietà.

    Proprietà

    Valore

    Descrizione

    allow_anonymous

    true

    Le sottoscrizioni anonime sono consentite.

     

    false

    Le sottoscrizioni anonime non sono consentite.

    allow_partition_realignment

    true

    Le eliminazioni che vengono inviate al Sottoscrittore si basano sui risultati delle modifiche effettuate in una sua partizione. Vengono eliminati i dati che non appartengono più a tale partizione. Questo è il comportamento predefinito.

     

    false

    Nel Sottoscrittore rimangono i dati di una vecchia partizione, mentre non vengono replicate le modifiche apportate a tali dati nel server di pubblicazione. Viceversa, le modifiche apportate nel Sottoscrittore vengono replicate nel server di pubblicazione. Ciò consente di conservare i dati relativi a una sottoscrizione in una vecchia partizione, nel caso in cui sia necessario accedervi per eseguire analisi cronologiche.

    allow_pull

    true

    È consentita la creazione di sottoscrizioni pull per la pubblicazione specificata.

     

    false

    Non è consentita la creazione di sottoscrizioni pull per la pubblicazione specificata.

    allow_push

    true

    È consentita la creazione di sottoscrizioni push per la pubblicazione specificata.

     

    false

    Non è consentita la creazione di sottoscrizioni push per la pubblicazione specificata.

    allow_subscriber_initiated_snapshot

    true

    Il Sottoscrittore può avviare il processo di snapshot.

     

    false

    Il Sottoscrittore non può avviare il processo di snapshot.

    allow_subscription_copy

    true

    È possibile copiare i database di sottoscrizione che sottoscrivono la pubblicazione.

     

    false

    Non è possibile copiare i database di sottoscrizione che sottoscrivono la pubblicazione.

    allow_synctoalternate

    true

    Consente la sincronizzazione di un partner di sincronizzazione alternativo con il server di pubblicazione corrente.

     

    false

    Non consente la sincronizzazione di un partner di sincronizzazione alternativo con il server di pubblicazione corrente.

    allow_web_synchronization

    true

    Le sottoscrizioni possono essere sincronizzate tramite HTTPS.

     

    false

    Le sottoscrizioni non possono essere sincronizzate tramite HTTPS.

    alt_snapshot_folder

     

    Specifica il percorso della cartella alternativa per lo snapshot.

    automatic_reinitialization_policy

    1

    Le modifiche vengono caricate dal Sottoscrittore prima della reinizializzazione della sottoscrizione.

     

    0

    La sottoscrizione viene reinizializzata senza che prima vengano caricate le modifiche.

    centralized_conflicts

    true

    I record con conflitti vengono archiviati nel server di pubblicazione. La modifica di questa proprietà richiede la reinizializzazione dei Sottoscrittori esistenti.

     

    false

    I record con conflitti vengono archiviati nel server perdente a livello di risoluzione dei conflitti. La modifica di questa proprietà richiede la reinizializzazione dei Sottoscrittori esistenti.

    compress_snapshot

    true

    Lo snapshot in una cartella snapshot alternativa viene compresso nel formato CAB. Non è possibile comprimere lo snapshot all'interno della cartella snapshot predefinita. Se si modifica questa proprietà è necessario un nuovo snapshot.

     

    false

    Per impostazione predefinita, lo snapshot non viene compresso. Se si modifica questa proprietà è necessario un nuovo snapshot.

    conflict_logging

    publisher

    I record con conflitti vengono archiviati nel server di pubblicazione.

     

    subscriber

    I record con conflitti vengono archiviati nel Sottoscrittore che ha causato il conflitto. Non supportato per i Sottoscrittori SQL Server Compact 3.5 SP1.

     

    both

    I record con conflitti vengono archiviati nel server di pubblicazione e nel Sottoscrittore.

    conflict_retention

     

    Valore int che specifica il periodo di memorizzazione, espresso in giorni, per i conflitti. L'impostazione di conflict_retention su 0 indica che non è necessario eseguire l'eliminazione dei conflitti.

    description

     

    Descrizione della pubblicazione.

    dynamic_filters

    true

    La pubblicazione viene filtrata in base a una clausola dinamica.

     

    false

    La pubblicazione non viene filtrata dinamicamente.

    enabled_for_internet

    true

    La pubblicazione è abilitata per Internet. È possibile utilizzare FTP (File Transfer Protocol) per il trasferimento dei file di snapshot in un Sottoscrittore. I file di sincronizzazione per la pubblicazione vengono inseriti nella directory C:\Programmi\Microsoft SQL Server\MSSQL\Repldata\ftp.

     

    false

    La pubblicazione non è abilitata per Internet.

    ftp_address

     

    Indirizzo di rete del servizio FTP per il server di distribuzione. Corrisponde alla posizione in cui sono archiviati i file di snapshot della pubblicazione.

    ftp_login

     

    Nome utente utilizzato per la connessione al servizio FTP.

    ftp_password

     

    Password dell'utente utilizzata per la connessione al servizio FTP.

    ftp_port

     

    Numero di porta del servizio FTP per il server di distribuzione. Corrisponde al numero di porta TCP del sito FTP in cui sono archiviati i file di snapshot della pubblicazione.

    ftp_subdirectory

     

    Specifica la posizione in cui vengono creati i file di snapshot se la pubblicazione supporta la propagazione di snapshot tramite FTP.

    generation_leveling_threshold

    int

    Specifica il numero di modifiche contenute in una generazione. Una generazione è un insieme di modifiche recapitate a un server di pubblicazione o a un Sottoscrittore. Per ulteriori informazioni, vedere Come la replica di tipo merge rileva ed enumera le modifiche.

    keep_partition_changes

    true

    La sincronizzazione è ottimizzata e vengono coinvolti solo i Sottoscrittori che includono righe nelle partizioni modificate. Se si modifica questa proprietà, è necessario un nuovo snapshot.

     

    false

    La sincronizzazione non è ottimizzata e le partizioni inviate ai Sottoscrittori vengono verificate quando i dati contenuti in una di esse vengono modificati. Se si modifica questa proprietà, è necessario un nuovo snapshot.

    max_concurrent_merge

     

    Valore int che rappresenta il numero massimo di processi di merge simultanei eseguibili in una pubblicazione. Se il valore è 0, non vi sono limiti. Se viene pianificata l'esecuzione simultanea di un numero di processi di merge maggiore del numero specificato, i processi in eccesso vengono inseriti in una coda finché non viene completato il processo di merge corrente.

    max_concurrent_dynamic_snapshots

     

    Valore int che rappresenta il numero massimo di sessioni di snapshot per generare uno snapshot dei dati filtrati che possa essere eseguito simultaneamente in una pubblicazione di tipo merge in cui vengono utilizzati filtri di riga con parametri. Se l'impostazione è 0, non vi sono limiti. Se viene pianificata l'esecuzione simultanea di un numero di processi di snapshot maggiore del numero specificato, i processi in eccesso vengono inseriti in una coda finché non viene completato il processo di merge corrente.

    post_snapshot_script

     

    Specifica un puntatore al percorso di un file con estensione sql. Quando si applica una sincronizzazione iniziale, l'agente di distribuzione o di merge esegue lo script post-snapshot dopo l'applicazione degli script degli oggetti replicati e dei dati durante una sincronizzazione iniziale. Se si modifica questa proprietà è necessario un nuovo snapshot.

    pre_snapshot_script

     

    Specifica un puntatore al percorso di un file con estensione sql. Durante l'applicazione dello snapshot in un Sottoscrittore, l'agente di merge esegue lo script pre-snapshot prima degli script degli oggetti replicati. Se si modifica questa proprietà è necessario un nuovo snapshot.

    publication_compatibility_level

    100RTM

    SQL Server 2008

    90RTM

    SQL Server 2005

     

    80SP3

    SQL Server 2000 SP3

    80SP2

    SQL Server 2000 SP2

     

    80SP1

    SQL Server 2000 SP2

     

    80RTM

    SQL Server 2000

     

    70 SP4

    SQL Server 7.0 SP4

     

    70SP3

    SQL Server 7.0 SP3

     

    70SP2

    SQL Server 7.0 SP2

     

    70SP1

    SQL Server 7.0 SP1

     

    70RTM

    SQL Server 7.0

    publish_to_activedirectory

    true

    Questo parametro è obsoleto ed è supportato solo per compatibilità con gli script di versioni precedenti. Non è più possibile aggiungere informazioni sulla pubblicazione in Active Directory.

     

    false

    Rimuove le informazioni sulla pubblicazione da Active Directory.

    replicate_ddl

    1

    Le istruzioni DDL (Data Definition Language) eseguite nel server di pubblicazione vengono replicate.

     

    0

    Non viene eseguita la replica delle istruzioni DDL.

    retention

     

    Valore int che rappresenta il numero di unità retention_period_unit per le quali salvare le modifiche per una determinata pubblicazione. Se la sottoscrizione non viene sincronizzata entro il periodo di memorizzazione specificato e se le modifiche che tale sottoscrizione avrebbe dovuto ricevere sono state rimosse tramite un'operazione di rimozione nel server di distribuzione, la sottoscrizione scade e pertanto dovrà essere reinizializzata. Il periodo di memorizzazione massimo consentito è il periodo compreso tra la data corrente e 31 dicembre 9999.

    NotaNota
    Il periodo di memorizzazione per le pubblicazioni di tipo merge è caratterizzato da un periodo di tolleranza di 24 ore per consentire l'adeguamento dei Sottoscrittori appartenenti a fusi orari diversi.

    retention_period_unit

    day

    Il periodo di memorizzazione è specificato in giorni.

     

    week

    Il periodo di memorizzazione è specificato in settimane.

     

    month

    Il periodo di memorizzazione è specificato in mesi.

     

    year

    Il periodo di memorizzazione è specificato in anni.

    snapshot_in_defaultfolder

    true

    I file di snapshot sono memorizzati nella cartella snapshot predefinita.

     

    false

    I file di snapshot vengono archiviati nella posizione alternativa specificata da alt_snapshot_folder. Tale combinazione indica che i file di snapshot vengono archiviati sia nella posizione predefinita che in posizioni alternative.

    snapshot_ready

    true

    Lo snapshot della pubblicazione è disponibile.

     

    false

    Lo snapshot della pubblicazione non è disponibile.

    status

    active

    La pubblicazione è in uno stato attivo.

     

    inactive

    La pubblicazione è in uno stato inattivo.

    sync_mode

    native oppure

    bcp native

    L'output del programma di copia bulk in modalità nativa di tutte le tabelle viene utilizzato per lo snapshot iniziale.

     

    character

    oppure bcp character

    L'output del programma di copia bulk in modalità carattere di tutte le tabelle viene utilizzato per lo snapshot iniziale, che è obbligatorio per tutti i Sottoscrittori non SQL Server.

    use_partition_groups

    NotaNota
    Se dopo avere utilizzato partition_groups si desidera tornare a utilizzare setupbelongs e impostare use_partition_groups=false in changemergearticle, è possibile che questa modifica non venga applicata correttamente dopo la creazione di uno snapshot. I trigger generati dallo snapshot sono conformi ai gruppi di partizioni. La soluzione alternativa per questo scenario è impostare lo stato su Inattivo, modificare use_partition_groups, quindi impostare lo stato su Attivo.

    true

    La pubblicazione utilizza partizioni pre-calcolate.

     

    false

    La pubblicazione non utilizza partizioni pre-calcolate.

    validate_subscriber_info

     

    Elenca le funzioni utilizzate per recuperare le informazioni relative al Sottoscrittore. Convalida quindi i criteri di applicazione dei filtri dinamici utilizzati per il Sottoscrittore per verificare che le informazioni vengano partizionate in modo coerente.

    web_synchronization_url

     

    Valore predefinito dell'URL Internet utilizzato per la sincronizzazione tramite il Web.

    NULL (predefinito)

     

    Restituisce l'elenco dei valori supportati per property.

  • [ @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 la modifica della pubblicazione non invalida 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 la modifica della pubblicazione potrebbe invalidare lo snapshot. Se alcune sottoscrizioni esistenti richiedono un nuovo snapshot, questo valore consente di contrassegnare lo snapshot esistente come obsoleto e di generarne uno nuovo.

    Per informazioni sulle proprietà che richiedono la generazione di un nuovo snapshot quando vengono modificate, 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 la modifica della pubblicazione non richiede la reinizializzazione delle sottoscrizioni. 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 specifica che la modifica della pubblicazione comporta la reinizializzazione delle sottoscrizioni esistenti e consente la reinizializzazione.

    Per ulteriori informazioni sulle proprietà che richiedono la reinizializzazione di tutte le sottoscrizioni esistenti in caso di modifica, vedere la sezione Osservazioni.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

sp_changemergepublication viene utilizzata per la replica di tipo merge.

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

  • alt_snapshot_folder

  • compress_snapshot

  • dynamic_filters

  • ftp_address

  • ftp_login

  • ftp_password

  • ftp_port

  • ftp_subdirectory

  • post_snapshot_script

  • publication_compatibility_level (solo in 80SP3)

  • pre_snapshot_script

  • snapshot_in_defaultfolder

  • sync_mode

  • use_partition_groups

La modifica delle proprietà seguenti richiede la reinizializzazione delle sottoscrizioni esistenti. È necessario specificare il valore 1 per il parametro force_reinit_subscription.

  • dynamic_filters

  • validate_subscriber_info

Per visualizzare un elenco degli oggetti di pubblicazione in Active Directory tramite publish_to_active_directory, è necessario che l'oggetto SQL Server sia già stato creato in Active Directory.

Esempio

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

-- Disable DDL replication for the publication.
USE [AdventureWorks]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

Autorizzazioni

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