sp_addmergepublication (Transact-SQL)

Data aggiornamento: 12 dicembre 2006

Crea 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 argomentoConvenzioni 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 che da creare. publication è di tipo sysname e non prevede alcun valore predefinito. Non può corrispondere alla parola chiave ALL. Il nome della pubblicazione deve essere univoco all'interno del database.
  • [ @description=] 'description'
    Descrizione della pubblicazione. description è di tipo nvarchar(255) e il valore predefinito è NULL.
  • [ @retention=] retention
    Periodo di memorizzazione, in unità di misura del periodo di memorizzazione, per cui salvare le modifiche alla pubblicazione specificata in publication. retention è di tipo int e il valore predefinito è 14 unità. Le unità di misura del periodo di memorizzazione sono definite in base a retention_period_unit. Se la sottoscrizione non è sincronizzata all'interno del periodo di memorizzazione e le modifiche in sospeso che avrebbe ricevuto non sono state rimosse da una operazione di pulitura nel Distributore, la sottoscrizione scade e deve 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 ha una tolleranza di 24 ore in modo da includere i Sottoscrittori con 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à di sincronizzazione iniziale dei Sottoscrittori della pubblicazione. sync_mode è di tipo nvarchar(10). I possibili valori sono i seguenti.

    Valore Descrizione

    native (valore predefinito)

    Genera l'output in modalità nativa del programma per la copia di massa per tutte le tabelle.

    character

    Genera l'output in modalità carattere del programma per la copia di massa per tutte le tabelle. È necessario per supportare i Sottoscrittori SQL Server 2005 Compact Edition e non SQL Server.

  • [ @allow_push=] 'allow_push'
    Indica se è possibile creare sottoscrizioni push per la pubblicazione specificata. allow_push è di tipo nvarchar(5) e il valore predefinito è TRUE, che consente la creazione di sottoscrizioni push per la pubblicazione.
  • [ @allow_pull=] 'allow_pull'
    Indica se è possibile creare sottoscrizioni pull per la pubblicazione specificata. allow_pull è di tipo nvarchar(5) e il valore predefinito è TRUE, che consente di creare sottoscrizioni pull per la pubblicazione. È necessario specificare true per supportare i Sottoscrittori SQL Server 2005 Compact Edition.
  • [ @allow_anonymous=] 'allow_anonymous'
    Indica se è possibile creare sottoscrizioni anonime per la pubblicazione specificata. allow_anonymous è di tipo nvarchar(5) e il valore predefinito è TRUE, che consente di creare sottoscrizioni anonime per la pubblicazione. È necessario specificare true per supportare iSottoscrittori SQL Server 2005 Compact Edition.
  • [ @enabled_for_internet=] 'enabled_for_internet'
    Indica se la pubblicazione è abilitata per Internet e determina se è possibile utilizzare il protocollo FTP per il trasferimento dei file di snapshot in un Sottoscrittore. enabled_for_internet è di tipo nvarchar(5) e il 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 Internet.
  • [ @centralized_conflicts =] 'centralized_conflicts'
    Questo parametro è obsoleto ed è supportato solo per compatibilità con gli script di versioni precedenti. Utilizzare conflict_logging per specificare la posizione di archiviazione dei record dei conflitti.
  • [ @dynamic_filters =] 'dynamic_filters'
    Consente alla pubblicazione di tipo merge di utilizzare i filtri di riga con parametri. dynamic_filters è di tipo nvarchar(5) e il 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 un valore true per dynamic_filters, è necessario definire un filtro di riga con parametri per l'articolo. Per ulteriori informazioni, vedere How to: Define and Modify a Parameterized Row Filter for a Merge Article (Replication Transact-SQL Programming).

  • [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
    Indica se i file di snapshot sono archiviati nella cartella predefinita. snapshot_in_default_folder è di tipo nvarchar(5) e il valore predefinito è TRUE. Se è true, i file di snapshot sono disponibili nella cartella predefinita. Se è false, i file di snapshot vengono archiviati nella posizione alternativa specificata in alternate_snapshot_folder. Una posizione alternativa può essere un altro server, un'unità di rete oppure un supporto rimovibile, ad esempio un CD-ROM o dischi rimovibili. È 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 anche quando è stata specificata una posizione in 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'
    Posizione della cartella alternativa per lo snapshot. alternate_snapshot_folder è di tipo nvarchar(255) e il valore predefinito è NULL.
  • [ @pre_snapshot_script = ] 'pre_snapshot_script'
    Puntatore a una posizione di file .sql. pre_snapshot_script è di tipo nvarchar(255) e il 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 protezione utilizzato dall'agente di merge durante la connessione al database di sottoscrizione. Gli script pre-snapshot non vengono eseguiti nei Sottoscrittori SQL Server 2005 Compact Edition.
  • [ @post_snapshot_script = ] 'post_snapshot_script'
    Puntatore a una posizione di file .sql. post_snapshot_script è di tipo nvarchar(255) e il 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 protezione utilizzato dall'agente di merge durante la connessione al database di sottoscrizione. Gli script post-snapshot non vengono eseguiti nei Sottoscrittori SQL Server 2005 Compact Edition.
  • [ @compress_snapshot = ] 'compress_snapshot'
    Specifica che lo snapshot scritto nella posizione @alt_snapshot_folder deve essere compresso nel formato Microsoft CAB. compress_snapshot è di tipo nvarchar(5) e il valore predefinito è FALSE. false indica che lo snapshot non viene compresso, mentre true indica che viene 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. È necessario specificare false per supportare i Sottoscrittori SQL Server 2005 Compact Edition.
  • [ @ftp_address = ] 'ftp_address'
    Indirizzo di rete del servizio FTP per il server di distribuzione. ftp_address è di tipo sysname e il valore predefinito è NULL. Posizione dei file di snapshot della pubblicazione in cui possono essere prelevati dall'agente di merge di un Sottoscrittore. Dato che questa proprietà viene archiviata per ogni pubblicazione, a ogni pubblicazione può essere associato un valore ftp_address diverso. La pubblicazione deve supportare la distribuzione di snapshot tramite FTP.
  • [ @ftp_port= ] ftp_port
    Numero di porta del servizio FTP per il server di distribuzione. ftp_port è di tipo int e il valore predefinito è 21. Specifica la posizione dei file di snapshot della pubblicazione in cui possono essere prelevati dall'agente di merge di un Sottoscrittore. Dato che questa proprietà viene archiviata per ogni pubblicazione, a ogni pubblicazione può essere associato un valore ftp_port diverso.
  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    Posizione dei file di snapshot in cui possono essere prelevati dall'agente di merge del Sottoscrittore se la pubblicazione supporta la distribuzione di snapshot tramite FTP. ftp_subdirectory è di tipo nvarchar(255) e il valore predefinito è NULL. Dato che questa proprietà viene archiviata per ogni pubblicazione, a ogni pubblicazione può essere associato un valore ftp_subdirctory diverso o nessuna sottodirectory se il 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:

    cartella_snapshot_alternativa\ftp\serverdipubblicazione_DBpubblicazione_pubblicazione\IDpartizione.

    [!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 la connessione al servizio FTP. ftp_login è di tipo sysname e il valore predefinito è anonymous.
  • [ @ftp_password = ] 'ftp_password'
    Password utente utilizzata per la connessione al servizio FTP. ftp_password è di tipo sysname e il valore predefinito è NULL.

    ms176103.security(it-it,SQL.90).gifNota sulla protezione:
    Non utilizzare una password vuota. Utilizzare una password complessa.
  • [ @conflict_retention = ] conflict_retention
    Periodo di memorizzazione dei conflitti espresso in giorni. conflict_retention è di tipo int e il valore predefinito è 14 giorni, trascorsi i quali la riga di conflitto viene eliminata dalla tabella dei conflitti.
  • [ @keep_partition_changes = ] 'keep_partition_changes'
    Specifica se attivare le ottimizzazioni delle modifiche alle partizioni quando non è possibile utilizzare le partizioni pre-calcolate. keep_partition_changes è di tipo nvarchar(5) e il valore predefinito è TRUE. false indica che le modifiche alle partizioni non vengono ottimizzate e, se non si utilizzano partizioni pre-calcolate, le partizioni inviate a tutti i Sottoscrittori saranno verificate quando si modificano i dati in una partizione. true indica che le modifiche alle partizioni vengono ottimizzate e che sono interessati solo i Sottoscrittori le cui righe sono contenute nelle partizioni modificate. Quando si utilizzano le partizioni pre-calcolate, impostare use_partition_groups su true e keep_partition_changes su false. Per ulteriori informazioni, vedere Ottimizzazione delle 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 per il parametro -MaxNetworkOptimization dell'agente snapshot. Per ulteriori informazioni su questo parametro, vedere Replication Snapshot Agent. Per informazioni su come specificare i parametri degli agenti, vedere Amministrazione degli agenti di replica.

  • [ @allow_subscription_copy= ] 'allow_subscription_copy'
    Attiva e disattiva la funzione di copia dei database di sottoscrizione che sottoscrivono la pubblicazione. allow_subscription_copy è di tipo nvarchar(5) e il valore predefinito è FALSE. Le dimensioni del database di sottoscrizione in fase di copia devono essere inferiori a 2 gigabyte (GB).
  • [ @allow_synctoalternate = ] 'allow_synctoalternate'
    Consente a un partner di sincronizzazione alternativo di eseguire la sincronizzazione con il server di pubblicazione corrente. allow_synctoalternate è di tipo nvarchar(5) e il valore predefinito è FALSE. Per i Sottoscrittori SQL Server 2005 Compact Edition non sono supportati partner di sincronizzazione alternativi.
  • [ @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 righe con parametri. validate_subscriber_info è di tipo nvarchar(500) e il valore predefinito è NULL. Queste informazioni vengono utilizzate dall'agente di merge per convalidare la partizione del Sottoscrittore. Ad esempio, se SUSER_SNAME (Transact-SQL) viene utilizzato nel filtro di righe 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 è obsoleto ed è supportato solo per compatibilità con gli script di versioni precedenti. 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 e il valore predefinito è 0. Il valore 0 per questa proprietà indica che non esiste un limite per il 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 dell'agente snapshot che possono essere eseguite simultaneamente per generare snapshot di dati filtrati per le partizioni del Sottoscrittore. maximum_concurrent_dynamic_snapshots è di tipo int e il valore predefinito è 0. Se è 0, non esiste alcuna limitazione per il numero di sessioni di 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-calcolate devono essere utilizzate per ottimizzare il processo di sincronizzazione. use_partition_groups è di tipo nvarchar(5). I possibili valori sono i seguenti:

    Valore Descrizione

    true

    La pubblicazioni utilizza le partizioni pre-calcolate.

    false

    La pubblicazioni non utilizza le partizioni pre-calcolate.

    NULL (valore predefinito)

    Il sistema decide sulla strategia di partizionamento.

    Le partizioni pre-calcolate vengono utilizzate per impostazione predefinita. Per evitare di utilizzare le partizioni pre-calcolate, occorre impostare use_partition_groups su false. Se è NULL, il sistema decide se è possibile utilizzare le partizioni pre-calcolate. Se non è possibile utilizzare le partizioni pre-calcolate, di fatto questo valore diventerà false senza generare alcun errore. In tali casi, è possibile impostare keep_partition_changes su true per consentire un certo livello di ottimizzazione. Per ulteriori informazioni, vedere Filtri di riga con parametri e Ottimizzazione delle prestazioni dei filtri con parametri con le partizioni pre-calcolate.

  • [ @publication_compatibility_level= ] backward_comp_level
    Indica la compatibilità con le versioni precedenti della pubblicazione. backward_comp_level è di tipo nvarchar(6). I possibili valori sono i seguenti:

    Valore Versione

    70RTM

    Microsoft SQL Server 7.0

    70SP1

    SQL Server 7.0 Service Pack 1

    70SP2

    SQL Server 7.0 Service Pack 2

    70SP3

    SQL Server 7.0 Service Pack 3

    70SP4

    SQL Server 7.0 Service Pack 4

    80RTM

    Microsoft SQL Server 2000

    80SP1

    SQL Server 2000 Service Pack 1

    80SP3 (valore predefinito)

    SQL Server 2000 Service Pack 3

    90RTM

    Microsoft SQL Server 2005

  • [ @replicate_ddl= ] replicate_ddl
    Indica se la replica dello schema è supportata per la pubblicazione. replicate_ddl è di tipo int e il valore predefinito è 1. 1 indica che le istruzioni DDL (Data Definition Language) eseguite nel server di pubblicazione vengono replicate, mentre 0 indica che le istruzioni DDL non vengono replicate. Per ulteriori informazioni, vedere Modifiche allo schema nei database di pubblicazione.
  • [ @allow_subscriber_initiated_snapshot= ] 'allow_subscriber_initiated_snapshot'
    Indica se i Sottoscrittori di questa pubblicazione possono iniziare il processo di snapshot per generare lo snapshot filtrato per la relativa partizione dei dati. allow_subscriber_initiated_snapshot è di tipo nvarchar(5) e il valore predefinito è FALSE. true indica che i Sottoscrittori possono iniziare 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) e il valore predefinito è FALSE. true specifica che le sottoscrizioni della pubblicazione possono essere sincronizzate tramite HTTPS. Per ulteriori informazioni, vedere Sincronizzazione Web per la replica di tipo merge. È necessario specificare true per supportare iSottoscrittori SQL Server 2005 Compact Edition.
  • [ @web_synchronization_url= ] 'web_synchronization_url'
    Specifica il valore predefinito dell'URL Internet utilizzato per la sincronizzazione Web. web_synchronization_url è di tipo nvarchar(500) e il valore predefinito è NULL. Definisce l'URL Internet predefinito se non ne è stato impostato uno in modo esplicito durante l'esecuzione di sp_addmergepullsubscription_agent.
  • [ @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. allow_partition_realignment è di tipo nvarchar(5) e il valore predefinito è TRUE. Se il valore è true, le eliminazioni vengono inviate al Sottoscrittore in modo da riflettere i risultati di una modifica di partizione, rimuovendo i dati che non fanno più parte della partizione del Sottoscrittore. Se il valore è false, i dati di una vecchia partizione vengono mantenuti nel Sottoscrittore. 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. L'impostazione di allow_partition_realignment su false viene utilizzata per mantenere i dati in una sottoscrizione da una vecchia partizione quando i dati devono essere accessibili per motivi cronologici.

    [!NOTA] I dati che rimangono nel Sottoscrittore in seguito all'impostazione di allow_partition_realignment su false dovrebbero essere considerati come se fossero di sola lettura. Questo requisito non è tuttavia imposto dal sistema di replica.

  • [ @retention_period_unit= ] 'retention_period_unit'
    Specifica le unità per il periodo di memorizzazione impostato tramite retention. retention_period_unit è di tipo nvarchar(10). I possibili valori sono i seguenti.

    Valore Versione

    day (valore predefinito)

    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 è un insieme di modifiche recapitate a un server di pubblicazione o a un Sottoscrittore. generation_leveling_threshold è di tipo int e il valore predefinito è 1000. Per ulteriori informazioni, vedere Come la replica di tipo merge rileva ed enumera le modifiche.
  • [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
    Specifica se le modifiche vengono caricate dal Sottoscrittore prima di una reinizializzazione automatica richiesta da una modifica alla pubblicazione, dove era stato specificato il valore 1 per @force_reinit_subscription. automatic_reinitialization_policy è di tipo bit e il valore predefinito è 0. 1 indica che le modifiche vengono caricate dal Sottoscrittore prima che si verifichi una reinizializzazione automatica.

    ms176103.note(it-it,SQL.90).gifImportante:
    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 la posizione di archiviazione dei record dei conflitti. conflict_logging è di tipo nvarchar(15). I possibili valori sono i seguenti:

    Valore Descrizione

    publisher

    I record dei conflitti vengono archiviati nel server di pubblicazione.

    subscriber

    I record dei conflitti vengono archiviati nel Sottoscrittore che ha causato il conflitto. Non è supportato per i Sottoscrittori SQL Server 2005 Compact Edition.

    both

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

    NULL (valore predefinito)

    La replica imposta automaticamente conflict_logging su both quando il valore backward_comp_level è 90RTM e su publisher in tutti gli altri casi.

Osservazioni

La stored procedure sp_addmergepublication viene utilizzata in repliche di tipo merge.

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

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

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

Se la replica DDL è attivata (replicate_ddl**=1**) per una pubblicazione, per apportare modifiche DDL non di replica alla pubblicazione, è necessario eseguire innanzitutto sp_changemergepublication per impostare replicate_ddl su 0. Dopo l'esecuzione delle istruzioni DDL non di replica, è possibile eseguire nuovamente sp_changemergepublication per riattivare la replica DDL.

Autorizzazioni

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

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

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'AdventureWorks'; 
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 [AdventureWorks]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks.',
  @publication_compatibility_level  = N'90RTM';

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

Vedere anche

Riferimento

sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Stored procedure per la replica (Transact-SQL)

Altre risorse

How to: Create a Publication (Replication Transact-SQL Programming)
Pubblicazione di dati e oggetti di database

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

12 dicembre 2006

Nuovo contenuto:
  • Aggiunta di informazioni sull'utilizzo del parametro -MaxNetworkOptimization dell'agente snapshot.
  • Aggiunta di informazioni sul parametro generation_leveling_threshold.