sp_addmergepublication (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) SìIstanza gestita di SQL di Azure

Viene creata una nuova pubblicazione di tipo merge. Questa stored procedure viene eseguita nel server di pubblicazione nel database in fase di pubblicazione.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

  
sp_addmergepublication [ @publication = ] 'publication'   
    [ , [ @description = ] 'description'   
    [ , [ @retention = ] retention ]   
    [ , [ @sync_mode = ] 'sync_mode' ]   
    [ , [ @allow_push = ] 'allow_push' ]   
    [ , [ @allow_pull = ] 'allow_pull' ]   
    [ , [ @allow_anonymous = ] 'allow_anonymous' ]   
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ]   
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ]   
    [ , [ @dynamic_filters = ] 'dynamic_filters' ]   
    [ , [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder' ]   
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ]   
    [ , [ @pre_snapshot_script = ] 'pre_snapshot_script' ]   
    [ , [ @post_snapshot_script = ] 'post_snapshot_script' ]   
    [ , [ @compress_snapshot = ] 'compress_snapshot' ]   
    [ , [ @ftp_address = ] 'ftp_address' ]   
    [ , [ @ftp_port = ] ftp_port ]   
    [ , [ @ftp_subdirectory = ] 'ftp_subdirectory' ]   
    [ , [ @ftp_login = ] 'ftp_login' ]   
    [ , [ @ftp_password = ] 'ftp_password' ]   
    [ , [ @conflict_retention = ] conflict_retention ]   
    [ , [ @keep_partition_changes = ] 'keep_partition_changes' ]   
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ]   
    [ , [ @allow_synctoalternate = ] 'allow_synctoalternate' ]   
    [ , [ @validate_subscriber_info = ] 'validate_subscriber_info' ]   
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ]   
    [ , [ @max_concurrent_merge = ] maximum_concurrent_merge ]   
    [ , [ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots ]  
    [ , [ @use_partition_groups = ] 'use_partition_groups' ]  
    [ , [ @publication_compatibility_level = ] 'backward_comp_level' ]  
    [ , [ @replicate_ddl = ] replicate_ddl ]  
    [ , [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot' ]   
    [ , [ @allow_web_synchronization = ] 'allow_web_synchronization' ]   
    [ , [ @web_synchronization_url = ] 'web_synchronization_url' ]  
    [ , [ @allow_partition_realignment = ] 'allow_partition_realignment' ]  
    [ , [ @retention_period_unit = ] 'retention_period_unit' ]  
    [ , [ @generation_leveling_threshold = ] generation_leveling_threshold ]  
    [ , [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy ]  
    [ , [ @conflict_logging = ] 'conflict_logging' ]  

Argomenti

[ @publication = ] 'publication' Nome della pubblicazione di tipo merge da creare. publication è di tipo sysname, senza alcun valore predefinito e non deve essere la parola chiave ALL. Il nome della pubblicazione deve essere univoco all'interno del database.

[ @description = ] 'description' Descrizione della pubblicazione. description è di tipo nvarchar(255), con valore predefinito NULL.

[ @retention = ] retentionPeriodo di memorizzazione, in unità del periodo di memorizzazione, per il quale salvare le modifiche per la pubblicazione specificata. retention è di tipo int, con un valore predefinito di 14 unità. Le unità del periodo di conservazione sono definite retention_period_unit. 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 equivale al numero di giorni tra il 31 dicembre 9999 e la data corrente.

Nota

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. Se, ad esempio, si imposta un periodo di memorizzazione di un giorno, il periodo di memorizzazione effettivo sarà di 48 ore.

[ @sync_mode = ] 'sync_mode' Modalità della sincronizzazione iniziale dei Sottoscrittori della pubblicazione. sync_mode è di tipo nvarchar(10) e può essere uno dei valori seguenti.

Valore Descrizione
native (impostazione predefinita) Genera l'output in modalità nativa del programma per la copia bulk per tutte le tabelle.
character Genera l'output in modalità carattere del programma per la copia bulk per tutte le tabelle. Necessario per Microsoft SQL Server Compact supportare Sottoscrittori e non SQL Server .

[ @allow_push = ] 'allow_push' Specifica se è possibile creare sottoscrizioni push per la pubblicazione specificata. allow_push è di tipo nvarchar(5), con il valore predefinito TRUE, che consente sottoscrizioni push nella pubblicazione.

[ @allow_pull = ] 'allow_pull' Specifica se è possibile creare sottoscrizioni pull per la pubblicazione specificata. allow_pull è di tipo nvarchar(5), con valore predefinito TRUE, che consente sottoscrizioni pull nella pubblicazione. È necessario specificare true per supportare SQL Server Compact i Sottoscrittori.

[ @allow_anonymous = ] 'allow_anonymous' Specifica se è possibile creare sottoscrizioni anonime per la pubblicazione specificata. allow_anonymous è di tipo nvarchar(5), con il valore predefinito TRUE, che consente sottoscrizioni anonime nella pubblicazione. Per SQL Server Compact supportare i Sottoscrittori, è necessario specificare true.

[ @enabled_for_internet = ] 'enabled_for_internet' Specifica se la pubblicazione è abilitata per Internet e determina se è possibile utilizzare il protocollo FTP (File Transfer Protocol) per trasferire i file di snapshot a un Sottoscrittore. enabled_for_internet è di tipo nvarchar(5), con valore predefinito FALSE. Se true, i file di sincronizzazione per la pubblicazione vengono inseriti nella directory C:\Programmi\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp. La directory Ftp deve essere creata dall'utente. Se false, la pubblicazione non è abilitata per l'accesso a Internet.

[ @centralized_conflicts = ] 'centralized_conflicts' Questo parametro è stato deprecato ed è supportato solo per la compatibilità con le versioni precedenti degli script. Usare conflict_logging per specificare la posizione in cui vengono archiviati i record dei conflitti.

[ @dynamic_filters = ] 'dynamic_filters' Consente alla pubblicazione di tipo merge di utilizzare filtri di riga con parametri. dynamic_filters è di tipo nvarchar(5), con valore predefinito FALSE.

Nota

Si consiglia di non specificare questo parametro ma di consentire a SQL Server di determinare automaticamente se vengono utilizzati i filtri di riga con parametri. Se si specifica il valore true per dynamic_filters , è necessario definire un filtro di riga con parametri per l'articolo. Per altre informazioni, vedere Definizione e modifica di un filtro di riga con parametri per un articolo di merge.

[ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder' Specifica se i file di snapshot vengono archiviati nella cartella predefinita. snapshot_in_default_folder è di tipo nvarchar(5), con il valore predefinito TRUE. Se true, i file di snapshot sono disponibili nella cartella predefinita. Se false, i file di snapshot verranno archiviati nel percorso alternativo specificato da alternate_snapshot_folder. Una posizione alternativa può essere un altro server, un'unità di rete oppure un supporto rimovibile, ad esempio un CD o un disco rimovibile. È inoltre possibile archiviare i file di snapshot in un sito FTP (File Transfer Protocol) in modo da poterli recuperare successivamente tramite il Sottoscrittore. Si noti che questo parametro può essere true e avere comunque un percorso specificato da alt_snapshot_folder. Tale combinazione indica che i file di snapshot vengono archiviati sia nella posizione predefinita che in posizioni alternative.

[ @alt_snapshot_folder = ] 'alternate_snapshot_folder' Specifica il percorso della cartella alternativa per lo snapshot. alternate_snapshot_folder è di tipo nvarchar(255), con valore predefinito NULL.

[ @pre_snapshot_script = ] 'pre_snapshot_script'Specifica un puntatore a un percorso di file con estensione sql. pre_snapshot_script è di tipo nvarchar(255), con valore predefinito NULL. Durante l'applicazione dello snapshot in un Sottoscrittore, l'agente di merge esegue lo script pre-snapshot prima degli script degli oggetti replicati. Lo script viene eseguito nel contesto di sicurezza utilizzato dall'agente di merge durante la connessione al database di sottoscrizione. Gli script di pre-snapshot non vengono eseguiti SQL Server Compact nei Sottoscrittori.

[ @post_snapshot_script = ] 'post_snapshot_script'Specifica un puntatore a un percorso di file con estensione sql. post_snapshot_script è di tipo nvarchar(255), con valore predefinito NULL. L'agente di merge esegue lo script post-snapshot dopo l'applicazione di tutti gli altri script di oggetti replicati e dei dati durante una sincronizzazione iniziale. Lo script viene eseguito nel contesto di sicurezza utilizzato dall'agente di merge durante la connessione al database di sottoscrizione. Gli script di post-snapshot non vengono eseguiti SQL Server Compact nei Sottoscrittori.

[ @compress_snapshot = ] 'compress_snapshot'Specifica che lo snapshot scritto nel percorso @ alt_snapshot_folder deve essere compresso nel Microsoft formato CAB. compress_snapshot è di tipo nvarchar(5), con valore predefinito FALSE. false specifica che lo snapshot non verrà compresso. true specifica che lo snapshot deve essere compresso. I file di snapshot di dimensioni superiori a 2GB non possono essere compressi. I file di snapshot compressi vengono decompressi nella posizione dove viene eseguito l'agente di merge; in genere le sottoscrizioni pull vengono utilizzate con gli snapshot compressi in modo che i file vengono decompressi nel Sottoscrittore. Non è possibile comprimere lo snapshot all'interno della cartella predefinita. Per SQL Server Compact supportare i Sottoscrittori, è necessario specificare false.

[ @ftp_address = ] 'ftp_address' Indirizzo di rete del servizio FTP per il server di distribuzione. ftp_address è sysname, con il valore predefinito NULL. Specifica la posizione dei file di snapshot della pubblicazione, dove i file possono essere prelevati dall'agente di merge di un Sottoscrittore. Poiché questa proprietà è archiviata per ogni pubblicazione, ogni pubblicazione può avere un valore diverso ftp_address. La pubblicazione deve supportare la propagazione di snapshot tramite FTP.

[ @ftp_port = ] ftp_port Numero di porta del servizio FTP per il server di distribuzione. ftp_port è int, con un valore predefinito di 21. Specifica la posizione dei file di snapshot della pubblicazione, dove i file possono essere prelevati dall'agente di merge di un Sottoscrittore. Poiché questa proprietà è archiviata per ogni pubblicazione, ogni pubblicazione può avere un proprio ftp_port.

[ @ftp_subdirectory = ] 'ftp_subdirectory' Specifica la posizione in cui i file di snapshot saranno disponibili per l'agente di merge del Sottoscrittore se la pubblicazione supporta la propagazione degli snapshot tramite FTP. ftp_subdirectory è di tipo nvarchar(255), con valore predefinito NULL. Poiché questa proprietà è archiviata per ogni pubblicazione, ogni pubblicazione può avere un proprio ftp_subdirctory o scegliere di non avere alcuna sottodirectory, indicata con un valore NULL.

Durante la pregenerazione degli snapshot per le pubblicazioni con filtri con parametri, lo snapshot dei dati per ogni partizione del Sottoscrittore deve essere archiviato nella propria cartella. La struttura di directory per gli snapshot pregenerati tramite FTP deve rispettare la struttura seguente:

alternate_snapshot_folder\ftp \ publisher_publicationDB_publication \ partitionID.

Nota

I valori riportati sopra in corsivo dipendono dai dettagli della pubblicazione e dalla partizione del Sottoscrittore.

[ @ftp_login = ] 'ftp_login' Nome utente utilizzato per connettersi al servizio FTP. ftp_login è sysname, con il valore predefinito "anonymous".

[ @ftp_password = ] 'ftp_password' Password utente utilizzata per connettersi al servizio FTP. ftp_password è sysname, con il valore predefinito NULL.

Importante

Non usare una password vuota. Usare una password complessa.

[ @conflict_retention = ] conflict_retention Specifica il periodo di memorizzazione, in giorni, per il quale vengono mantenuti i conflitti. conflict_retention è di tipo int, con un valore predefinito di 14 giorni prima che la riga in conflitto venga eliminata dalla tabella dei conflitti.

[ @keep_partition_changes = ] 'keep_partition_changes' Specifica se abilitare le ottimizzazioni delle modifiche alle partizioni quando non è possibile usare partizioni pre-ricalcolate. keep_partition_changes è di tipo nvarchar(5), con il valore predefinito TRUE. false indica che le modifiche alle partizioni non sono ottimizzate e, quando le partizioni pre-ricalcolate non vengono utilizzate, le partizioni inviate a tutti i Sottoscrittori verranno verificate quando i dati cambiano in una partizione. true indica che le modifiche alle partizioni sono ottimizzate e che sono interessati solo i Sottoscrittori che hanno righe nelle partizioni modificate. Quando si usano partizioni pre-ricalcolate, impostare use_partition_groups su true e impostare keep_partition_changes su false. Per altre informazioni, vedere Ottimizzare le prestazioni dei filtri con parametri con le partizioni pre-calcolate.

Nota

Se si specifica il valore true per keep_partition_changes, specificare il valore 1 agente di snapshot parametro -MaxNetworkOptimization. Per altre informazioni su questo parametro, vedere Replication agente di snapshot. Per informazioni su come specificare i parametri dell'agente, vedere Amministrazione dell'agente di replica.

Con SQL Server Compact i sottoscrittori, keep_partition_changes deve essere impostato su true per garantire che le eliminazioni vengano propagate correttamente. Se impostato su false, nel Sottoscrittore potrebbero essere presenti più righe rispetto al previsto.

[ @allow_subscription_copy = ] 'allow_subscription_copy' Abilita o disabilita la possibilità di copiare i database di sottoscrizione che sottoscriveno la pubblicazione. allow_subscription_copy è di tipo nvarchar(5), con valore predefinito FALSE. Le dimensioni del database di sottoscrizione copiato devono essere inferiori a 2 gigabyte (GB)

[ @allow_synctoalternate = ] 'allow_synctoalternate' Identificato solo a scopo informativo. Non supportata. Non è garantita la compatibilità con le versioni future.

[ @validate_subscriber_info = ] 'validate_subscriber_info' Elenca le funzioni utilizzate per definire una partizione del Sottoscrittore dei dati pubblicati quando vengono utilizzati filtri di riga con parametri. validate_subscriber_info è di tipo nvarchar(500), con valore predefinito NULL. Queste informazioni vengono utilizzate dall'agente di merge per convalidare la partizione del Sottoscrittore. Ad esempio, se SUSER_SNAME viene usato nel filtro di riga con parametri, il parametro deve essere @validate_subscriber_info=N'SUSER_SNAME()' .

Nota

Si consiglia di non specificare questo parametro e di consentire invece a SQL Server di determinare il criterio di filtro in modo automatico.

[ @add_to_active_directory = ] 'add_to_active_directory' Questo parametro è stato deprecato ed è supportato solo per la compatibilità con le versioni precedenti degli script. Non è più possibile aggiungere informazioni di pubblicazione in Microsoft Active Directory.

[ @max_concurrent_merge = ] maximum_concurrent_merge Numero massimo di processi di merge simultanei. maximum_concurrent_merge è di tipo int con valore predefinito 0. Il valore 0 per questa proprietà indica che non esiste alcun limite al numero di processi di merge simultanei in esecuzione in un determinato momento. Questa proprietà imposta un limite per il numero di processi di merge che è possibile eseguire contemporaneamente in una pubblicazione di tipo merge. Se è stata pianificata l'esecuzione simultanea di un numero di processi maggiore del limite consentito, i processi in eccesso vengono inseriti in una coda dove rimangono in attesa fino al completamento del processo di merge attualmente in esecuzione.

[ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots Numero massimo di sessioni agente di snapshot che possono essere eseguite contemporaneamente per generare snapshot di dati filtrati per le partizioni del Sottoscrittore. maximum_concurrent_dynamic_snapshots è di tipo int con valore predefinito 0. Se 0, non esiste alcun limite al numero di sessioni snapshot. Se è stata pianificata l'esecuzione simultanea di un numero di processi di snapshot superiore al limite consentito, i processi in eccesso vengono inseriti in una coda in cui rimangono in attesa fino al completamento del processo di snapshot in esecuzione.

[ @use_partition_groups = ] 'use_partition_groups' Specifica che le partizioni pre-ricalcolate devono essere usate per ottimizzare il processo di sincronizzazione. use_partition_groups è di tipo nvarchar(5) e può essere uno dei valori seguenti:

Valore Descrizione
true La pubblicazione utilizza partizioni pre-calcolate.
false La pubblicazione non utilizza partizioni pre-calcolate.
NULL (impostazione predefinita) Il sistema decide sulla strategia di partizionamento.

Le partizioni pre-calcolate vengono utilizzate per impostazione predefinita. Per evitare l'uso di partizioni pre-ricalcolate, use_partition_groups deve essere impostato su false. Se è NULL, il sistema decide se è possibile utilizzare le partizioni pre-calcolate. Se non è possibile usare partizioni pre-ricalcolate, questo valore diventerà effettivamente false senza generare errori. In questi casi, keep_partition_changes può essere impostato su true per fornire un'ottimizzazione. Per altre informazioni, vedere Filtri di riga con parametri e Ottimizzare le prestazioni dei filtri con parametri con partizioni pre-ricalcolate.

[ @publication_compatibility_level = ] backward_comp_level Indica la compatibilità con le versioni precedenti della pubblicazione. backward_comp_level è di tipo nvarchar(6) e può essere uno dei valori seguenti:

Valore Versione
90RTM SQL Server 2005 (9.x)
100RTM SQL Server 2008

[ @replicate_ddl = ] replicate_ddl Indica se la replica dello schema è supportata per la pubblicazione. replicate_ddl è int, con il valore predefinito 1. 1 indica che le istruzioni DDL (Data Definition Language) eseguite nel server di pubblicazione vengono replicate e 0 indica che le istruzioni DDL non vengono replicate. Per altre informazioni, vedere Apportare modifiche allo schema nei database di pubblicazione.

Il @ replicate_ddl viene rispettato quando un'istruzione DDL aggiunge una colonna. Il @ replicate_ddl viene ignorato quando un'istruzione DDL modifica o elimina una colonna per i motivi seguenti.

  • Quando viene rilasciata una colonna, è necessario aggiornare sysarticlecolumns per evitare l'inclusione della colonna eliminata da parte delle nuove istruzioni DML che determinerebbe la mancata esecuzione dell'agente di distribuzione. Il @ replicate_ddl viene ignorato perché la replica deve sempre replicare la modifica dello schema.

  • Quando una colonna viene modificata, è probabile che venga modificato il tipo di dati di origine o il supporto dei valori Null, di conseguenza le istruzioni DML contengono un valore che potrebbe non essere compatibile con la tabella nel Sottoscrittore. Tali istruzioni DML potrebbero determinare la mancata esecuzione dell'agente di distribuzione. Il @ replicate_ddl viene ignorato perché la replica deve sempre replicare la modifica dello schema.

  • Quando un'istruzione DDL aggiunge una nuova colonna, sysarticlecolumns non include la nuova colonna. Le istruzioni DML non tenteranno di replicare i dati per la nuova colonna. Il parametro viene rispettato perché la replica o la non replica di DDL è accettabile.

[ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot' Indica se i Sottoscrittori di questa pubblicazione possono avviare il processo di snapshot per generare lo snapshot filtrato per la partizione dati. allow_subscriber_initiated_snapshot è di tipo nvarchar(5), con valore predefinito FALSE. true indica che i Sottoscrittori possono avviare il processo di snapshot.

[ @allow_web_synchronization = ] 'allow_web_synchronization' Specifica se la pubblicazione è abilitata per la sincronizzazione Web. allow_web_synchronization è di tipo nvarchar(5), con valore predefinito FALSE. true specifica che le sottoscrizioni di questa pubblicazione possono essere sincronizzate tramite HTTPS. Per altre informazioni, vedere Web Synchronization for Merge Replication. Per SQL Server Compact supportare i Sottoscrittori, è necessario specificare true.

[ @web_synchronization_url = ] 'web_synchronization_url' Specifica il valore predefinito dell'URL Internet utilizzato per la sincronizzazione Web. web_synchronization_url i s nvarchar(500), con valore predefinito NULL. Definisce l'URL Internet predefinito se non ne viene impostato uno in modo esplicito sp_addmergepullsubscription_agent viene eseguito.

[ @allow_partition_realignment = ] 'allow_partition_realignment' Determina se le eliminazioni vengono inviate al Sottoscrittore quando la modifica della riga nel server di pubblicazione ne determina la modifica della partizione. allow_partition_realignment è di tipo nvarchar(5), con il valore predefinito TRUE. true invia le eliminazioni al Sottoscrittore per riflettere i risultati di una modifica della partizione rimuovendo i dati che non fanno più parte della partizione del Sottoscrittore. false lascia i dati di una partizione precedente nel Sottoscrittore, in cui le modifiche apportate ai dati nel Publisher non verranno replicate nel Sottoscrittore, ma le modifiche apportate nel Sottoscrittore verranno replicate nel Publisher. L allow_partition_realignment su false viene usata per conservare i dati in una sottoscrizione di una partizione precedente quando i dati devono essere accessibili per scopi cronologici.

Nota

I dati che rimangono nel Sottoscrittore in seguito all'impostazione allow_partition_realignment su false devono essere considerati come se fossero di sola lettura; Tuttavia, questa operazione non viene applicata dal sistema di replica.

[ @retention_period_unit = ] 'retention_period_unit'Specifica le unità per il periodo di memorizzazione impostato da retention. retention_period_unit è di tipo nvarchar(10) e può essere uno dei valori seguenti.

Valore Versione
day (impostazione predefinita) 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.

[ @generation_leveling_threshold = ] generation_leveling_threshold Specifica il numero di modifiche contenute in una generazione. Una generazione è una raccolta di modifiche recapitate a un server di pubblicazione o a un Sottoscrittore. generation_leveling_threshold è int, con un valore predefinito di 1000.

[ @automatic_reinitialization_policy = ] automatic_reinitialization_policySpecifica se le modifiche vengono caricate dal Sottoscrittore prima di una reinizializzazione automatica richiesta da una modifica alla pubblicazione, in cui è stato specificato il valore 1 @ per force_reinit_subscription. automatic_reinitialization_policy è di tipo bit, con un valore predefinito pari a 0. 1 indica che le modifiche vengono caricate dal Sottoscrittore prima che venga eseguita una reinizializzazione automatica.

Importante

Se si aggiunge, elimina o modifica un filtro con parametri, le modifiche in sospeso nel Sottoscrittore non possono essere caricate nel server di pubblicazione durante la reinizializzazione. Per caricare le modifiche in sospeso, sincronizzare tutte le sottoscrizioni prima di modificare il filtro.

[ @conflict_logging = ] 'conflict_logging' Specifica dove vengono archiviati i record dei conflitti. conflict_logging è di tipo nvarchar(15) e può essere uno dei valori seguenti:

Valore Descrizione
Editore I record con conflitti vengono archiviati nel server di pubblicazione.
Sottoscrittore I record con conflitti vengono archiviati nel Sottoscrittore che ha causato il conflitto. Non supportato per SQL Server Compact i Sottoscrittori.
Entrambi I record con conflitti vengono archiviati nel server di pubblicazione e nel Sottoscrittore.
NULL (predefinito) La replica imposta automaticamente conflict_logging su quando il valore backward_comp_level è 90RTM e sul server di pubblicazione in tutti gli altri casi.

Valori del codice restituito

0 (operazione completata) o 1 (operazione non riuscita)

Commenti

sp_addmergepublication utilizzato nella replica di tipo merge.

Per elencare gli oggetti pubblicazione in Active Directory @ usando add_to_active_directory, è necessario che l'oggetto sia già SQL Server stato creato in Active Directory.

Se sono presenti più pubblicazioni che pubblicano lo stesso oggetto di database, solo le pubblicazioni con un valore replicate_ddl pari a 1 replicheranno le istruzioni DDL ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION e ALTER TRIGGER. Una istruzione ALTER TABLE DROP COLUMN DDL verrà tuttavia replicata da tutte le pubblicazioni che stanno pubblicando la colonna eliminata.

Per SQL Server Compact i Sottoscrittori, il valore di alternate_snapshot_folder viene utilizzato solo quando il valore di snapshot_in_default_folder è false.

Con la replica DDL abilitata (replicate_ddl=1) per una pubblicazione, per apportare modifiche DDL non di replica alla pubblicazione, è prima necessario eseguire sp_changemergepublication (Transact-SQL) per impostare replicate_ddl su 0. Dopo l'esecuzione delle istruzioni DDL non di replica, sp_changemergepublication possibile eseguire nuovamente per riattivare la replica DDL.

Esempio

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. For information about 
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2012'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
USE [AdventureWorks2012]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks2012.',
  @publication_compatibility_level  = N'120RTM';

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
  @publication = @publication, 
  @job_login = @login, 
  @job_password = @password;
GO

Autorizzazioni

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

Vedere anche

Create a Publication
Pubblicare dati e oggetti di database
sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Stored procedure per la replica (Transact-SQL)