sp_addmergepublication (Transact-SQL)sp_addmergepublication (Transact-SQL)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Viene creata una nuova pubblicazione di tipo merge.Creates a new merge publication. Questa stored procedure viene eseguita nel server di pubblicazione nel database in fase di pubblicazione.This stored procedure is executed at the Publisher on the database that is being published.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax


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' ]  

ArgomentiArguments

[ @publication = ] 'pubblicazione'[ @publication = ] 'publication'
Nome della pubblicazione di tipo merge da creare.Is the name of the merge publication to create. pubblicazione viene sysnamee non prevede alcun valore predefinito e non corrispondere alla parola chiave tutti.publication is sysname, with no default, and must not be the keyword ALL. Il nome della pubblicazione deve essere univoco all'interno del database.The name of the publication must be unique within the database.

[ @description = ] 'descrizione'[ @description = ] 'description'
Descrizione della pubblicazione.Is the publication description. Descrizione viene nvarchar(255, con un valore predefinito è NULL.description is nvarchar(255), with a default of NULL.

[ @retention = ] conservazione[ @retention = ] retention
È il periodo di memorizzazione in memorizzazione unità di tempo, per cui si desidera salvare le modifiche per il dato pubblicazione.Is the retention period, in retention period units, for which to save changes for the given publication. conservazione viene int, con un valore predefinito di 14 unità.retention is int, with a default of 14 units. Unità del periodo di conservazione sono definite da retention_period_unit.Retention period units are defined by 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.If the subscription is not synchronized within the retention period, and the pending changes it would have received have been removed by a clean-up operation at the Distributor, the subscription expires and must be reinitialized. Il periodo di memorizzazione massimo consentito equivale al numero di giorni tra il 31 dicembre 9999 e la data corrente.The maximum allowable retention period is the number of days between Dec. 31, 9999 and the current date.

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.The retention period for merge publications has a 24 hour grace period to accommodate Subscribers in different time zones. Se, ad esempio, si imposta un periodo di memorizzazione di un giorno, il periodo di memorizzazione effettivo sarà di 48 ore.If, for example, you set a retention period of one day, the actual retention period is 48 hours.

[ @sync_mode = ] 'sync_mode'[ @sync_mode = ] 'sync_mode'
Modalità di sincronizzazione iniziale dei Sottoscrittori della pubblicazione.Is the mode of the initial synchronization of subscribers to the publication. sync_mode viene nvarchar(10), e può essere uno dei valori seguenti.sync_mode is nvarchar(10), and can be one of the following values.

ValueValue DescriptionDescription
native (impostazione predefinita)native (default) Genera l'output in modalità nativa del programma per la copia bulk per tutte le tabelle.Produces native-mode bulk copy program output of all tables.
charactercharacter Genera l'output in modalità carattere del programma per la copia bulk per tutte le tabelle.Produces character-mode bulk copy program output of all tables. Necessario per supportare MicrosoftMicrosoft SQL Server CompactSQL Server Compact e non- SQL ServerSQL Server sottoscrittori.Required to support MicrosoftMicrosoft SQL Server CompactSQL Server Compact and non- SQL ServerSQL Server Subscribers.

[ @allow_push = ] 'allow_push'[ @allow_push = ] 'allow_push'
Specifica se è consentito creare sottoscrizioni push per la pubblicazione specificata.Specifies if push subscriptions can be created for the given publication. allow_push viene nvarchar(5, con un valore predefinito è TRUE, che consente le sottoscrizioni push nella pubblicazione.allow_push is nvarchar(5), with a default of TRUE, which allows push subscriptions on the publication.

[ @allow_pull = ] 'allow_pull'[ @allow_pull = ] 'allow_pull'
Specifica se è consentito creare sottoscrizioni pull per la pubblicazione specificata.Specifies if pull subscriptions can be created for the given publication. allow_pull viene nvarchar(5, con un valore predefinito è TRUE, che consente le sottoscrizioni pull nella pubblicazione.allow_pull is nvarchar(5), with a default of TRUE, which allows pull subscriptions on the publication. È necessario specificare true per supportare SQL Server CompactSQL Server Compact sottoscrittori.You must specify true to support SQL Server CompactSQL Server Compact Subscribers.

[ @allow_anonymous = ] 'allow_anonymous'[ @allow_anonymous = ] 'allow_anonymous'
Specifica se è consentito creare sottoscrizioni anonime per la pubblicazione specificata.Specifies if anonymous subscriptions can be created for the given publication. allow_anonymous viene nvarchar(5, con un valore predefinito è TRUE, che consente sottoscrizioni anonime per la pubblicazione.allow_anonymous is nvarchar(5), with a default of TRUE, which allows anonymous subscriptions on the publication. Per supportare SQL Server CompactSQL Server Compact sottoscrittori, è necessario specificare true.To support SQL Server CompactSQL Server Compact Subscribers, you must specify true.

[ @enabled_for_internet = ] 'enabled_for_internet'[ @enabled_for_internet = ] 'enabled_for_internet'
Specifica se la pubblicazione è abilitata per Internet e determina se è possibile utilizzare FTP per il trasferimento dei file di snapshot in un Sottoscrittore.Specifies if the publication is enabled for the Internet, and determines if file transfer protocol (FTP) can be used to transfer the snapshot files to a subscriber. enabled_for_internet viene nvarchar(5, con un valore predefinito è FALSE.enabled_for_internet is nvarchar(5), with a default of FALSE. Se true, i file di sincronizzazione per la pubblicazione vengono inseriti nella directory C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\repldata\ftp.If true, the synchronization files for the publication are put into the C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp directory. La directory Ftp deve essere creata dall'utente.The user must create the Ftp directory. Se false, la pubblicazione non è abilitata per l'accesso a Internet.If false, the publication is not enabled for Internet access.

[ @centralized_conflicts =] 'centralized_conflicts'[ @centralized_conflicts =] 'centralized_conflicts'
Questo parametro è deprecato ed è supportato solo per compatibilità con gli script di versioni precedenti.This parameter has been deprecated and is only supported for the backward compatibility of scripts. Utilizzare conflict_logging per specificare il percorso in cui sono archiviati i record dei conflitti.Use conflict_logging to specify the location where conflict records are stored.

[ @dynamic_filters =] 'dynamic_filters'[ @dynamic_filters =] 'dynamic_filters'
Consente alla pubblicazione di tipo merge di utilizzare i filtri di riga con parametri.Enables the merge publication to use parameterized row filters. dynamic_filters viene nvarchar(5, con un valore predefinito è FALSE.dynamic_filters is nvarchar(5), with a default of FALSE.

Nota

Si consiglia di non specificare questo parametro ma di consentire a SQL ServerSQL Server di determinare automaticamente se vengono utilizzati i filtri di riga con parametri.You should not specify this parameter but instead allow SQL ServerSQL Server to automatically determine if parameterized row filters are being used. Se si specifica un valore di true per dynamic_filters, è necessario definire un filtro di riga con parametri per l'articolo.If you specify a value of true for dynamic_filters, you must define a parameterized row filter for the article. Per altre informazioni, vedere Definizione e modifica di un filtro di riga con parametri per un articolo di merge.For more information, see Define and Modify a Parameterized Row Filter for a Merge Article.

[ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'[ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
Viene specificato se i file di snapshot sono archiviati nella cartella predefinita.Specifies if the snapshot files are stored in the default folder. snapshot_in_default_folder viene nvarchar(5, con un valore predefinito è TRUE.snapshot_in_default_folder is nvarchar(5), with a default of TRUE. Se true, i file di snapshot sono disponibili nella cartella predefinita.If true, snapshot files can be found in the default folder. Se false, verranno archiviati i file di snapshot nella posizione alternativa specificata da alternate_snapshot_folder.If false, snapshot files will be stored in the alternate location specified by 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.Alternate locations can be on another server, on a network drive, or on a removable media (such as CD-ROM or removable disks). È inoltre possibile archiviare i file di snapshot in un sito FTP (File Transfer Protocol) in modo da poterli recuperare successivamente tramite il Sottoscrittore.You can also save the snapshot files to a File Transfer Protocol (FTP) site, for retrieval by the Subscriber at a later time. Si noti che questo parametro può essere true e una posizione specificata da alt_snapshot_folder.Note that this parameter can be true and still have a location specified by alt_snapshot_folder. Tale combinazione indica che i file di snapshot vengono archiviati sia nella posizione predefinita che in posizioni alternative.This combination specifies that the snapshot files will be stored in both the default and alternate locations.

[ @alt_snapshot_folder = ] 'alternate_snapshot_folder'[ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
Specifica la posizione della cartella alternativa per lo snapshot.Specifies the location of the alternate folder for the snapshot. alternate_snapshot_folder viene nvarchar(255, con un valore predefinito è NULL.alternate_snapshot_folder is nvarchar(255), with a default of NULL.

[ @pre_snapshot_script = ] 'pre_snapshot_script'[ @pre_snapshot_script = ] 'pre_snapshot_script'
Specifica un puntatore a un SQL percorso del file.Specifies a pointer to an .sql file location. pre_snapshot_script viene nvarchar(255, con un valore predefinito è NULL.pre_snapshot_script is nvarchar(255), with a default of NULL. Durante l'applicazione dello snapshot in un Sottoscrittore, l'agente di merge esegue lo script pre-snapshot prima degli script degli oggetti replicati.The Merge Agent will run the pre-snapshot script before any of the replicated object scripts when applying the snapshot at a Subscriber. Lo script viene eseguito nel contesto di sicurezza utilizzato dall'agente di merge durante la connessione al database di sottoscrizione.The script is executed in the security context used by the Merge Agent when connecting to the subscription database. Gli script di pre-snapshot non vengono eseguiti nei SQL Server CompactSQL Server Compact sottoscrittori.Pre-snapshot scripts are not run on SQL Server CompactSQL Server Compact Subscribers.

[ @post_snapshot_script = ] 'post_snapshot_script'[ @post_snapshot_script = ] 'post_snapshot_script'
Specifica un puntatore a un SQL percorso del file.Specifies a pointer to an .sql file location. post_snapshot_script viene nvarchar(255, con un valore predefinito è NULL.post_snapshot_script is nvarchar(255), with a default of 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.The Merge Agent will run the post-snapshot script after all the other replicated object scripts and data have been applied during an initial synchronization. Lo script viene eseguito nel contesto di sicurezza utilizzato dall'agente di merge durante la connessione al database di sottoscrizione.The script is executed in the security context used by the Merge Agent when connecting to the subscription database. Gli script di post-snapshot non vengono eseguiti nei SQL Server CompactSQL Server Compact sottoscrittori.Post-snapshot scripts are not run on SQL Server CompactSQL Server Compact Subscribers.

[ @compress_snapshot = ] 'compress_snapshot'[ @compress_snapshot = ] 'compress_snapshot'
Specifica che lo snapshot scritto il @alt_snapshot_folder deve essere compresso nel si trova il MicrosoftMicrosoft formato CAB.Specifies that the snapshot written to the @alt_snapshot_folder location is to be compressed into the MicrosoftMicrosoft CAB format. compress_snapshot viene nvarchar(5, con un valore predefinito è FALSE.compress_snapshot is nvarchar(5), with a default of FALSE. false indica che non lo snapshot verrà compresso; true indica che lo snapshot verrà compresso.false specifies that the snapshot will not be compressed; true specifies that the snapshot is to be compressed. I file di snapshot di dimensioni superiori a 2GB non possono essere compressi.Snapshot files that are larger than 2GB cannot be compressed. 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.Compressed snapshot files are uncompressed at the location where the Merge Agent runs; pull subscriptions are typically used with compressed snapshots so that files are uncompressed at the Subscriber. Non è possibile comprimere lo snapshot all'interno della cartella predefinita.The snapshot in the default folder cannot be compressed. Per supportare SQL Server CompactSQL Server Compact sottoscrittori, è necessario specificare false.To support SQL Server CompactSQL Server Compact Subscribers, you must specify false.

[ @ftp_address = ] 'ftp_address'[ @ftp_address = ] 'ftp_address'
Indirizzo di rete del servizio FTP per il database di distribuzione.Is the network address of the FTP service for the Distributor. ftp_address viene sysname, con un valore predefinito è NULL.ftp_address is sysname, with a default of NULL. Specifica la posizione dei file di snapshot della pubblicazione, dove i file possono essere prelevati dall'agente di merge di un Sottoscrittore.Specifies where publication snapshot files are located for the Merge Agent of a subscriber to pick up. Poiché questa proprietà viene archiviata per ogni pubblicazione, ogni pubblicazione può essere un altro ftp_address.Since this property is stored for each publication, each publication can have a different ftp_address. La pubblicazione deve supportare la propagazione di snapshot tramite FTP.The publication must support propagating snapshots using FTP.

[ @ftp_port= ] ftp_port[ @ftp_port= ] ftp_port
Numero di porta del servizio FTP per il database di distribuzione.Is the port number of the FTP service for the Distributor. ftp_port viene int, con un valore predefinito è 21.ftp_port is int, with a default of 21. Specifica la posizione dei file di snapshot della pubblicazione, dove i file possono essere prelevati dall'agente di merge di un Sottoscrittore.Specifies where the publication snapshot files are located for the Merge Agent of a subscriber to pick up. Poiché questa proprietà viene archiviata per ogni pubblicazione, ogni pubblicazione può avere un proprio ftp_port.Since this property is stored for each publication, each publication can have its own ftp_port.

[ @ftp_subdirectory = ] 'ftp_subdirectory'[ @ftp_subdirectory = ] 'ftp_subdirectory'
Specifica la posizione dei file di snapshot, dove i file possono essere prelevati dall'agente di merge del Sottoscrittore se la pubblicazione supporta la propagazione di snapshot tramite FTP.Specifies where the snapshot files will be available for the Merge Agent of the subscriber to pick up if the publication supports propagating snapshots using FTP. ftp_subdirectory viene nvarchar(255, con un valore predefinito è NULL.ftp_subdirectory is nvarchar(255), with a default of NULL. Poiché questa proprietà viene archiviata per ogni pubblicazione, ogni pubblicazione può avere un proprio ftp_subdirctory oppure scegliere di non una sottodirectory con un valore NULL.Since this property is stored for each publication, each publication can have its own ftp_subdirctory or choose to have no subdirectory, indicated with a NULL value.

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.When pre-generating snapshots for publications with parameterized filters, the data snapshot for each Subscriber partition needs to be in its own folder. La struttura di directory per gli snapshot pregenerati tramite FTP deve rispettare la struttura seguente:The directory structure for pre-generated snapshots using FTP must obey the following structure:

alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.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.The values above in italics will depend on the specifics of the publication and Subscriber partition.

[ @ftp_login = ] 'ftp_login'[ @ftp_login = ] 'ftp_login'
Nome utente utilizzato per la connessione al servizio FTP.Is the username used to connect to the FTP service. ftp_login viene sysname, con un valore predefinito di 'anonymous'.ftp_login is sysname, with a default of 'anonymous'.

[ @ftp_password = ] 'ftp_password'[ @ftp_password = ] 'ftp_password'
Password utente utilizzata per la connessione al servizio FTP.Is the user password used to connect to the FTP service. ftp_password viene sysname, con un valore predefinito è NULL.ftp_password is sysname, with a default of NULL.

Importante

Non usare una password vuota.Do not use a blank password. Usare una password complessa.Use a strong password.

[ @conflict_retention = ] conflict_retention[ @conflict_retention = ] conflict_retention
Viene specificato il periodo di memorizzazione dei conflitti espresso in giorni.Specifies the retention period, in days, for which conflicts are retained. conflict_retention viene int, con valore predefinito è 14 giorni prima il conflitto riga viene eliminata dalla tabella dei conflitti.conflict_retention is int, with a default of 14 days before the conflict row is purged from the conflict table.

[ @keep_partition_changes = ] 'keep_partition_changes'[ @keep_partition_changes = ] 'keep_partition_changes'
Specifica se abilitare le ottimizzazioni delle modifiche alle partizioni quando non è possibile utilizzare le partizioni pre-calcolate.Specifies whether to enable partition change optimizations when precomputed partitions cannot be used. keep_partition_changes viene nvarchar(5, con un valore predefinito è TRUE.keep_partition_changes is nvarchar(5), with a default of TRUE. false significa che le modifiche di partizione non viene ottimizzate e quando non si utilizzano partizioni pre-calcolate, le partizioni inviate a tutti i sottoscrittori verranno verificate quando si modificano i dati in una partizione.false means that partition changes are not optimized, and when precomputed partitions are not used, the partitions sent to all Subscribers will be verified when data changes in a partition. true significa che le modifiche di partizione viene ottimizzate e vengono coinvolti solo i sottoscrittori con righe nelle partizioni modificate.true means that partition changes are optimized, and only Subscribers having rows in the changed partitions are affected. Quando si utilizzano partizioni pre-calcolate, impostare use_partition_groups a true e impostare keep_partition_changes a false.When using precomputed partitions, set use_partition_groups to true and set keep_partition_changes to false. Per altre informazioni, vedere Ottimizzare le prestazioni dei filtri con parametri con le partizioni pre-calcolate.For more information, see Optimize Parameterized Filter Performance with Precomputed Partitions.

Nota

Se si specifica un valore di true per keep_partition_changes, specificare un valore di 1 per il parametro dell'agente Snapshot - MaxNetworkOptimization .If you specify a value of true for keep_partition_changes, specify a value of 1 for the Snapshot Agent parameter -MaxNetworkOptimization. Per ulteriori informazioni su questo parametro, vedere agente Snapshot repliche.For more information about this parameter, see Replication Snapshot Agent. Per informazioni su come specificare i parametri dell'agente, vedere amministrazione agente di replica.For information about how to specify agent parameters, see Replication Agent Administration.

Con SQL Server CompactSQL Server Compact sottoscrittori, keep_partition_changes deve essere impostato su true per assicurarsi che le eliminazioni vengono propagate correttamente.With SQL Server CompactSQL Server Compact subscribers, keep_partition_changes must be set to true to ensure that deletes are correctly propagated. Se impostato su false, nel Sottoscrittore potrebbero essere presenti più righe rispetto al previsto.When set to false, the subscriber might have more rows than expected.

[ @allow_subscription_copy= ] 'allow_subscription_copy'[ @allow_subscription_copy= ] 'allow_subscription_copy'
Abilita o disabilita la funzione di copia dei database di sottoscrizione che sottoscrivono la pubblicazione.Enables or disables the ability to copy the subscription databases that subscribe to this publication. allow_subscription_copy viene nvarchar(5, con un valore predefinito è FALSE.allow_subscription_copy is nvarchar(5), with a default of FALSE. Le dimensioni del database di sottoscrizione copiato devono essere inferiori a 2 gigabyte (GB)The size of the subscription database being copied must be less than 2 gigabytes (GB).

[ @allow_synctoalternate = ] 'allow_synctoalternate'[ @allow_synctoalternate = ] 'allow_synctoalternate'
Identificato solo a scopo informativo.Identified for informational purposes only. Non supportato.Not supported. Non è garantita la compatibilità con le versioni future.Future compatibility is not guaranteed.

[ @validate_subscriber_info = ] 'validate_subscriber_info'[ @validate_subscriber_info = ] 'validate_subscriber_info'
Visualizza un elenco delle funzioni utilizzate per definire una partizione del Sottoscrittore dei dati pubblicati quando vengono utilizzati i filtri di riga con parametri.Lists the functions that are used to define a Subscriber partition of the published data when parameterized row filters are used. validate_subscriber_info viene nvarchar(500), con un valore predefinito è NULL.validate_subscriber_info is nvarchar(500), with a default of NULL. Queste informazioni vengono utilizzate dall'agente di merge per convalidare la partizione del Sottoscrittore.This information is used by the Merge Agent to validate the Subscriber's partition. Ad esempio, se SUSER_SNAME viene utilizzato nel filtro di riga con parametri, il parametro deve essere @validate_subscriber_info=N'SUSER_SNAME()'.For example, if SUSER_SNAME is used in the parameterized row filter, the parameter should be @validate_subscriber_info=N'SUSER_SNAME()'.

Nota

Si consiglia di non specificare questo parametro e di consentire invece a SQL ServerSQL Server di determinare il criterio di filtro in modo automatico.You should not specify this parameter but instead allow SQL ServerSQL Server to automatically determine the filtering criterion.

[ @add_to_active_directory = ] 'add_to_active_directory'[ @add_to_active_directory = ] 'add_to_active_directory'
Questo parametro è deprecato ed è supportato solo per compatibilità con gli script di versioni precedenti.This parameter has been deprecated and is only supported for the backward compatibility of scripts. Non è più possibile aggiungere informazioni di pubblicazione in MicrosoftMicrosoft Active Directory.You can no longer add publication information to the MicrosoftMicrosoft Active Directory.

[ @max_concurrent_merge = ] maximum_concurrent_merge[ @max_concurrent_merge = ] maximum_concurrent_merge
Numero massimo di processi di merge simultanei.The maximum number of concurrent merge processes. maximum_concurrent_merge viene int con un valore predefinito è 0.maximum_concurrent_merge is int with a default of 0. Il valore 0 per questa proprietà indica che non sono previsti limiti al numero di processi di merge simultanei in esecuzione in qualsiasi momento.A value of 0 for this property means that there is no limit to the number of concurrent merge processes running at any given time. Questa proprietà imposta un limite per il numero di processi di merge che è possibile eseguire contemporaneamente in una pubblicazione di tipo merge.This property sets a limit on the number of concurrent merge processes that can be run against a merge publication at one time. 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.If there are more merge processes scheduled at the same time than the value allows to run, then the excess jobs will be put into a queue and wait until a currently-running merge process finishes.

[ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots[ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
Numero massimo di sessioni dell'agente snapshot che possono essere eseguite simultaneamente per generare snapshot dei dati filtrati per le partizioni del Sottoscrittore.The maximum number of Snapshot Agent sessions that can be run concurrently to generate filtered data snapshots for Subscriber partitions. maximum_concurrent_dynamic_snapshots viene int con un valore predefinito è 0.maximum_concurrent_dynamic_snapshots is int with a default of 0. Se 0, non vi è alcun limite al numero sessioni di snapshot.If 0, there is no limit to the number snapshot sessions. 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.If there are more snapshot processes scheduled at the same time than the value allows to run, then the excess jobs will be put into a queue and wait until a currently-running snapshot process finishes.

[ @use_partition_groups = ] 'use_partition_groups'[ @use_partition_groups = ] 'use_partition_groups'
Specifica che le partizioni pre-calcolate devono essere utilizzate per ottimizzare il processo di sincronizzazione.Specifies that precomputed partitions should be used to optimize the synchronization process. use_partition_groups viene nvarchar(5, e può essere uno dei valori seguenti:use_partition_groups is nvarchar(5), and can be one of these values:

ValueValue DescriptionDescription
truetrue La pubblicazione utilizza partizioni pre-calcolate.Publication uses precomputed partitions.
falsefalse La pubblicazione non utilizza partizioni pre-calcolate.Publication does not use precomputed partitions.
NULL(default)NULL(default) Il sistema decide sulla strategia di partizionamento.System decides on the partitioning strategy.

Le partizioni pre-calcolate vengono utilizzate per impostazione predefinita.Precomputed partitions are used by default. Per evitare di utilizzare partizioni pre-calcolate, use_partition_groups deve essere impostato su false.To avoid using precomputed partitions, use_partition_groups must be set to false. Se è NULL, il sistema decide se è possibile utilizzare le partizioni pre-calcolate.When NULL, the system will decide if precomputed partitions can be used. Se precalcolate partizioni non possono essere utilizzate quindi questo valore verrà impostato false senza generare alcun errore.If precomputed partitions cannot be used, then this value will effectively become false without generating any errors. In questi casi, keep_partition_changes può essere impostato su true per fornire una sorta di ottimizzazione.In such cases, keep_partition_changes can be set to true to provide some optimization. Per ulteriori informazioni, vedere Parameterized Row Filters e Ottimizza prestazioni filtro con parametri con le partizioni precalcolate.For more information, see Parameterized Row Filters and Optimize Parameterized Filter Performance with Precomputed Partitions.

[ @publication_compatibility_level = ] backward_comp_level[ @publication_compatibility_level = ] backward_comp_level
Indica la compatibilità con le versioni precedenti della pubblicazione.Indicates the backward compatibility of the publication. backward_comp_level viene nvarchar(6), e può essere uno dei valori seguenti:backward_comp_level is nvarchar(6), and can be one of these values:

ValueValue VersioneVersion
90RTM90RTM SQL Server 2005SQL Server 2005
100RTM100RTM SQL Server 2008SQL Server 2008

[ @replicate_ddl = ] replicate_ddl[ @replicate_ddl = ] replicate_ddl
Indica se per la pubblicazione è supportata la replica dello schema.Indicates if schema replication is supported for the publication. replicate_ddl viene int, con un valore predefinito è 1.replicate_ddl is int, with a default of 1. 1 indica che vengono replicate istruzioni di data definition language (DDL) eseguite nel server di pubblicazione, e 0 indica che le istruzioni DDL non vengono replicate.1 indicates that data definition language (DDL) statements executed at the publisher are replicated, and 0 indicates that DDL statements are not replicated. Per altre informazioni, vedere Apportare modifiche allo schema nei database di pubblicazione.For more information, see Make Schema Changes on Publication Databases.

Il @replicate_ddl parametro viene rispettato quando un'istruzione DDL aggiunge una colonna.The @replicate_ddl parameter is honored when a DDL statement adds a column. Il @replicate_ddl parametro viene ignorato quando un'istruzione DDL modifica o elimina una colonna per i motivi seguenti.The @replicate_ddl parameter is ignored when a DDL statement alters or drops a column for the following reasons.

  • Quando viene eliminata una colonna, è necessario aggiornare sysarticlecolumns per evitare che le nuove istruzioni DML, compresi la colonna eliminata che potrebbe causare l'agente di distribuzione.When a column is dropped, sysarticlecolumns must be updated to prevent new DML statements from including the dropped column which would cause the distribution agent to fail. Il @replicate_ddl parametro verrà ignorato perché la replica deve replicare sempre la modifica dello schema.The @replicate_ddl parameter is ignored because replication must always replicate the schema change.

  • 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.When a column is altered, the source data type or nullability might have changed, causing DML statements to contain a value that may not be compatible with the table at the subscriber. Tali istruzioni DML potrebbero determinare la mancata esecuzione dell'agente di distribuzione.Such DML statements might cause distribution agent to fail. Il @replicate_ddl parametro verrà ignorato perché la replica deve replicare sempre la modifica dello schema.The @replicate_ddl parameter is ignored because replication must always replicate the schema change.

  • Quando un'istruzione DDL aggiunge una nuova colonna, sysarticlecolumns non include la nuova colonna.When a DDL statement adds a new column, sysarticlecolumns does not include the new column. Le istruzioni DML non tenteranno di replicare i dati per la nuova colonna.DML statements will not try to replicate data for the new column. Il parametro viene rispettato perché la replica o la non replica di DDL è accettabile.The parameter is honored because either replicating or not replicating the DDL is acceptable.

    [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot'[ @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 relativa partizione dati.Indicates if Subscribers to this publication can initiate the snapshot process to generate the filtered snapshot for their data partition. allow_subscriber_initiated_snapshot viene nvarchar(5, con un valore predefinito è FALSE.allow_subscriber_initiated_snapshot is nvarchar(5), with a default of FALSE. true indica che i sottoscrittori possono avviare il processo di snapshot.true indicates that Subscribers can initiate the snapshot process.

    [ @allow_web_synchronization = ] 'allow_web_synchronization'[ @allow_web_synchronization = ] 'allow_web_synchronization'
    Specifica se la pubblicazione è abilitata per la sincronizzazione Web.Specifies if the publication is enabled for Web synchronization. allow_web_synchronization viene nvarchar(5, con un valore predefinito è FALSE.allow_web_synchronization is nvarchar(5), with a default of FALSE. true specifica che le sottoscrizioni della pubblicazione possono essere sincronizzate tramite HTTPS.true specifies that subscriptions to this publication can be synchronized over HTTPS. Per altre informazioni, vedere Web Synchronization for Merge Replication.For more information, see Web Synchronization for Merge Replication. Per supportare SQL Server CompactSQL Server Compact sottoscrittori, è necessario specificare true.To support SQL Server CompactSQL Server Compact Subscribers, you must specify true.

    [ @web_synchronization_url= ] 'web_synchronization_url'[ @web_synchronization_url= ] 'web_synchronization_url'
    Specifica il valore predefinito dell'URL Internet utilizzato per la sincronizzazione tramite il Web.Specifies the default value of the Internet URL used for Web synchronization. web_synchronization_url sis nvarchar(500), con un valore predefinito è NULL.web_synchronization_url is nvarchar(500), with a default of NULL. Definisce l'URL Internet predefinito se ne è stato esplicitamente impostato quando sp_addmergepullsubscription_agent viene eseguita.Defines the default Internet URL if one is not explicitly set when sp_addmergepullsubscription_agent is executed.

    [ @allow_partition_realignment = ] 'allow_partition_realignment'[ @allow_partition_realignment = ] 'allow_partition_realignment'
    Determina se le eliminazioni vengono inviate al Sottoscrittore quando la modifica della riga nel server di pubblicazione provoca la modifica della partizione.Determines whether deletes are sent to the subscriber when modification of the row on the publisher causes it to change its partition. allow_partition_realignment viene nvarchar(5, con un valore predefinito è TRUE.allow_partition_realignment is nvarchar(5), with a default of TRUE. true le eliminazioni vengono inviate al sottoscrittore in modo da riflettere i risultati di una modifica della partizione mediante la rimozione dei dati che non sono più parte della partizione del sottoscrittore.true sends deletes to the Subscriber to reflect the results of a partition change by removing data that is no longer part of the Subscriber's partition. false lascia che i dati di una vecchia partizione nel Sottoscrittore, in cui le modifiche apportate a tali dati nel server di pubblicazione non verranno replicate nel Sottoscrittore, ma le modifiche apportate nel Sottoscrittore verranno replicate nel server di pubblicazione.false leaves the data from an old partition on the Subscriber, where changes made to this data on the Publisher will not replicate to this Subscriber, but changes made on the Subscriber will replicate to the Publisher. Impostazione allow_partition_realignment a false viene utilizzato per mantenere i dati in una sottoscrizione di una vecchia partizione quando i dati devono essere accessibili per fini cronologici.Setting allow_partition_realignment to false is used to retain data in a subscription from an old partition when the data needs to be accessible for historical purposes.

Nota

Dati che rimangono nel Sottoscrittore impostazione allow_partition_realignment a false devono essere considerati come se fosse di sola lettura; tuttavia, questo non viene applicato dal sistema di replica.Data that remains at the Subscriber as a result of setting allow_partition_realignment to false should be treated as if it were read-only; however, this is not enforced by the replication system.

[ @retention_period_unit = ] 'retention_period_unit'[ @retention_period_unit = ] 'retention_period_unit'
Specifica le unità per il periodo di memorizzazione impostato conservazione.Specifies the units for the retention period set by retention. retention_period_unit viene nvarchar(10), e può essere uno dei valori seguenti.retention_period_unit is nvarchar(10), and can be one of the following values.

ValueValue VersioneVersion
giorno (impostazione predefinita)day (default) Il periodo di memorizzazione è specificato in giorni.Retention period is specified in days.
weekweek Il periodo di memorizzazione è specificato in settimane.Retention period is specified in weeks.
monthmonth Il periodo di memorizzazione è specificato in mesi.Retention period is specified in months.
yearyear Il periodo di memorizzazione è specificato in anni.Retention period is specified in years.

[ @generation_leveling_threshold= ] generation_leveling_threshold[ @generation_leveling_threshold= ] generation_leveling_threshold
Viene specificato il numero di modifiche contenute in una generazione.Specifies the number of changes that are contained in a generation. Una generazione è una raccolta di modifiche recapitate a un server di pubblicazione o a un Sottoscrittore.A generation is a collection of changes that are delivered to a Publisher or Subscriber. generation_leveling_threshold viene int, con valore predefinito è 1000.generation_leveling_threshold is int, with a default value of 1000.

[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
Specifica se le modifiche vengono caricate dal sottoscrittore prima di una reinizializzazione automatica richiesta da una modifica apportata alla pubblicazione, dove il valore 1 è stato specificato per @force_reinit_subscription.Specifies whether changes are uploaded from the Subscriber before an automatic reinitialization required by a change to the publication, where a value of 1 was specified for @force_reinit_subscription. automatic_reinitialization_policy è di tipo bit e il valore predefinito pari a 0.automatic_reinitialization_policy is bit, with a default value of 0. 1 significa che le modifiche vengono caricate dal sottoscrittore prima che si verifichi una reinizializzazione automatica.1 means that changes are uploaded from the Subscriber before an automatic reinitialization occurs.

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.If you add, drop, or change a parameterized filter, pending changes at the Subscriber cannot be uploaded to the Publisher during reinitialization. Per caricare le modifiche in sospeso, sincronizzare tutte le sottoscrizioni prima di modificare il filtro.If you want to upload pending changes, synchronize all subscriptions before changing the filter.

[ @conflict_logging = ] 'conflict_logging'[ @conflict_logging = ] 'conflict_logging'
Specifica la posizione di archiviazione dei record dei conflitti.Specifies where conflict records are stored. conflict_logging viene nvarchar(15), e può essere uno dei valori seguenti:conflict_logging is nvarchar(15), and can be one of the following values:

ValueValue DescriptionDescription
publisherpublisher I record con conflitti vengono archiviati nel server di pubblicazione.Conflict records are stored at the Publisher.
subscribersubscriber I record con conflitti vengono archiviati nel Sottoscrittore che ha causato il conflitto.Conflict records are stored at the Subscriber that caused the conflict. Non supportato per SQL Server CompactSQL Server Compact i sottoscrittori.Not supported for SQL Server CompactSQL Server Compact Subscribers.
bothboth I record con conflitti vengono archiviati nel server di pubblicazione e nel Sottoscrittore.Conflict records are stored at both the Publisher and Subscriber.
NULL (predefinito)NULL (default) La replica imposta automaticamente conflict_logging a entrambi quando il valore backward_comp_level è 90RTM e publisher in tutti gli altri casi.Replication automatically sets conflict_logging to both when the value backward_comp_level is 90RTM and to publisher in all other cases.

Valori restituitiReturn Code Values

0 (esito positivo) o 1 (esito negativo)0 (success) or 1 (failure)

OsservazioniRemarks

sp_addmergepublication viene utilizzata nella replica di tipo merge.sp_addmergepublication is used in merge replication.

Per elencare oggetti di pubblicazione in Active Directory tramite il @add_to_active_directory parametro, il SQL ServerSQL Server oggetto sia già stato creato in Active Directory.To list publication objects to the Active Directory using the @add_to_active_directory parameter, the SQL ServerSQL Server object must already be created in the Active Directory.

Se esistono più pubblicazioni che pubblicano lo stesso oggetto di database, solo per le pubblicazioni con un replicate_ddl valore 1 replicherà ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION e Istruzioni ALTER TRIGGER DDL.If multiple publications exist that publish the same database object, only publications with a replicate_ddl value of 1 will replicate ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION, and ALTER TRIGGER DDL statements. Una istruzione ALTER TABLE DROP COLUMN DDL verrà tuttavia replicata da tutte le pubblicazioni che stanno pubblicando la colonna eliminata.However, an ALTER TABLE DROP COLUMN DDL statement will be replicated by all publications that are publishing the dropped column.

Per SQL Server CompactSQL Server Compact sottoscrittori, il valore di alternate_snapshot_folder viene utilizzato solo quando il valore di snapshot_in_default_folder è false.For SQL Server CompactSQL Server Compact Subscribers, the value of alternate_snapshot_folder is only used when the value of snapshot_in_default_folder is false.

Con abilitata la replica DDL (* * replicate_ddl = 1) per una pubblicazione, per facilitare la DDL da non replicare le modifiche della pubblicazione sp_changemergepublication (Transact-SQL) devono essere eseguiti prima per impostare replicate_ddl alla 0.With DDL replication enabled (replicate_ddl=1) for a publication, in order to make non-replicating DDL changes to the publication, sp_changemergepublication (Transact-SQL) must first be executed to set replicate_ddl to 0. Dopo le istruzioni DDL non di replica sono stati emessi, sp_changemergepublication può essere eseguito nuovamente per riattivare la replica DDL.After the non-replicating DDL statements have been issued, sp_changemergepublication can be run again to turn DDL replication back on.

EsempioExample

-- 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

AutorizzazioniPermissions

Solo i membri del sysadmin ruolo predefinito del server o db_owner ruolo predefinito del database possono eseguire sp_addmergepublication.Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_addmergepublication.

Vedere ancheSee Also

Create a Publication Create a Publication
Pubblicare dati e oggetti di database Publish Data and Database Objects
sp_changemergepublication (Transact-SQL) sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL) sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL) sp_helpmergepublication (Transact-SQL)
Stored procedure per la replica (Transact-SQL)Replication Stored Procedures (Transact-SQL)