sp_changemergepublication (Transact-SQL)
Si applica a: SQL Server
Modifica le proprietà di una pubblicazione di tipo merge. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_changemergepublication
[ @publication = ] N'publication'
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]
Argomenti
[ @publication = ] N'publication'
Nome della pubblicazione. @publication è sysname, senza impostazione predefinita.
[ @property = ] N'property'
Proprietà da modificare per la pubblicazione specificata. @property è sysname e può essere uno dei valori elencati nella tabella seguente.
[ @value = ] N'value'
Nuovo valore della proprietà specificata. @value è nvarchar(255), con il valore predefinito NULL
.
e può essere uno dei valori 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 |
I dati di una partizione precedente vengono lasciati nel Sottoscrittore, in cui le modifiche apportate a questi dati nel server di pubblicazione non vengono replicate nel Sottoscrittore. 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 |
Le sottoscrizioni pull non sono consentite per la pubblicazione specificata. | |
allow_push |
true |
È consentita la creazione di sottoscrizioni push per la pubblicazione specificata. |
false |
Le sottoscrizioni push non sono consentite 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 a un partner di sincronizzazione alternativo di eseguire la sincronizzazione con questo server di pubblicazione. | |
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. Lo snapshot nella cartella snapshot predefinita non può essere compresso. Se si modifica questa proprietà, è necessario un nuovo snapshot. |
false |
Per impostazione predefinita, lo snapshot non è 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 di SQL Server Compact. | |
both |
I record con conflitti vengono archiviati nel server di pubblicazione e nel Sottoscrittore. | |
conflict_retention |
Valore int che specifica il periodo di conservazione, in giorni, per cui vengono conservati i conflitti. L'impostazione su conflict_retention 0 indica che non è necessaria alcuna pulizia 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 in modo dinamico. | |
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 C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp directory . |
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 | Viene specificato il numero di modifiche contenute in una generazione. Una generazione è una raccolta di modifiche recapitate a un server di pubblicazione o a un Sottoscrittore. |
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 vengono modificati in una partizione. Se si modifica questa proprietà, è necessario un nuovo snapshot. | |
max_concurrent_merge |
Valore int che rappresenta il numero massimo di processi di unione simultanei che possono essere eseguiti su una pubblicazione. Se 0, non esiste alcun limite. Se più di questo numero di processi di merge vengono pianificati per l'esecuzione contemporaneamente, i processi in eccesso vengono inseriti in una coda fino al completamento di un processo currentlmerge. | |
max_concurrent_dynamic_snapshots |
Valore int che rappresenta il numero massimo di sessioni snapshot per generare uno snapshot di dati filtrato che può essere eseguito simultaneamente su una pubblicazione di tipo merge che utilizza filtri di riga con parametri. Se 0 , non esiste alcun limite. 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 a un .sql percorso di file. 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 a un .sql percorso di file. 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 (10.0.x) |
90RTM |
SQL Server 2005 (9.x) | |
publish_to_activedirectory |
true |
Questo parametro è deprecato e viene mantenuto per la compatibilità con le versioni precedenti degli script. 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 |
Le istruzioni DDL non vengono replicate. | |
retention |
Valore int che rappresenta il numero di retention_period_unit unità per cui salvare le modifiche per la pubblicazione specificata. Se la sottoscrizione non è sincronizzata entro il periodo di conservazione e le modifiche in sospeso ricevute sono state rimosse da un'operazione di pulizia nel server di distribuzione, la sottoscrizione scade e deve essere reinizializzata. Il periodo di memorizzazione massimo consentito è il periodo compreso tra la data corrente e 31 dicembre 9999.Nota: il periodo di conservazione per le pubblicazioni di tipo merge ha un periodo di tolleranza di 24 ore per contenere i Sottoscrittori in 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 nel percorso alternativo specificato 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 per la pubblicazione non è disponibile. | |
status |
active |
La pubblicazione è in uno stato attivo. |
inactive |
La pubblicazione è in uno stato inattivo. | |
sync_mode |
native oppurebcp native |
L'output del programma di copia bulk in modalità nativa di tutte le tabelle viene utilizzato per lo snapshot iniziale. |
character o bcp character |
L'output del programma di copia bulk in modalità carattere di tutte le tabelle viene usato per lo snapshot iniziale, necessario per tutti i Sottoscrittori non SQL Server. | |
use_partition_groups Nota: dopo aver usato i gruppi di partizioni, se si ripristina l'uso setupbelongs di e impostato use_partition_groups=false in changemergearticle , questa operazione potrebbe non essere riflessa correttamente dopo l'acquisizione di uno snapshot. I trigger generati dallo snapshot sono conformi ai gruppi di partizioni.La soluzione alternativa a questo scenario consiste nell'impostare lo stato su Inattivo, modificare e use_partition_groups quindi impostare lo stato su Attivo. |
true |
La pubblicazione utilizza partizioni pre-calcolate. |
false |
La pubblicazione non usa partizioni pre-calcolate. | |
validate_subscriber_info |
Elenca le funzioni utilizzate per recuperare le informazioni relative al Sottoscrittore. Convalida quindi i criteri di filtro dinamici usati per il Sottoscrittore per verificare che le informazioni siano 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 è bit, con 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 sono presenti sottoscrizioni esistenti che richiedono un nuovo snapshot, concede l'autorizzazione per contrassegnare lo snapshot esistente come obsoleto e per generare un nuovo snapshot.
Vedere la sezione Osservazioni per le proprietà che, quando modificate, 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 è bit, con un 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, si verifica un errore e non vengono apportate modifiche.1
significa che le modifiche apportate alla pubblicazione reinizializzano le sottoscrizioni esistenti e concede l'autorizzazione per la reinizializzazione della sottoscrizione.
Vedere la sezione Osservazioni per le proprietà che, quando modificate, richiedono la reinizializzazione di tutte le sottoscrizioni esistenti.
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Osservazioni:
sp_changemergepublication
viene usato nella replica di tipo merge.
Per modificare le proprietà seguenti è necessario che venga generato un nuovo snapshot. È necessario specificare un valore per 1
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 per80SP3
)pre_snapshot_script
snapshot_in_defaultfolder
sync_mode
use_partition_groups
La modifica delle proprietà seguenti richiede la reinizializzazione delle sottoscrizioni esistenti. È necessario specificare un valore per 1
il parametro @force_reinit_subscription .
dynamic_filters
validate_subscriber_info
Per elencare gli oggetti di pubblicazione in Active Directory tramite publish_to_active_directory
, è necessario creare l'oggetto SQL Server in Active Directory.
Esempi
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
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 db_owner ruolo predefinito del database possono eseguire sp_changemergepublication
.