sp_addpublication (Transact-SQL)

Data aggiornamento: 12 dicembre 2006

Crea una pubblicazione snapshot o transazionale. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_addpublication [ @publication = ] 'publication'
    [ , [ @taskid = ] tasked ]
    [ , [ @restricted = ] 'restricted' ]
    [ , [ @sync_method = ] 'sync_method' ]
    [ , [ @repl_freq = ] 'repl_freq' ]
    [ , [ @description = ] 'description' ]
    [ , [ @status = ] 'status' ]
    [ , [ @independent_agent = ] 'independent_agent' ]
    [ , [ @immediate_sync = ] 'immediate_sync' ]
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ]
    [ , [ @allow_push = ] 'allow_push'
    [ , [ @allow_pull = ] 'allow_pull' ]
    [ , [ @allow_anonymous = ] 'allow_anonymous' ]
    [ , [ @allow_sync_tran = ] 'allow_sync_tran' ]
    [ , [ @autogen_sync_procs = ] 'autogen_sync_procs' ]
    [ , [ @retention = ] retention ]
    [ , [ @allow_queued_tran= ] 'allow_queued_updating' ]
        [ , [ @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' ]
    [ , [ @allow_dts = ] 'allow_dts' ]
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ]
    [ , [ @conflict_policy = ] 'conflict_policy' ]
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
    [ , [ @conflict_retention = ] conflict_retention ]
    [ , [ @queue_type = ] 'queue_type' ]
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ]
    [ , [ @logreader_job_name = ] 'logreader_agent_name' ]
    [ , [ @qreader_job_name = ] 'queue_reader_agent_name' ]
    [ , [ @publisher = ] 'publisher' ] 
    [ , [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @enabled_for_p2p = ] 'enabled_for_p2p' ]
    [ , [ @publish_local_changes_only = ] 'publish_local_changes_only' ]
    [ , [ @enabled_for_het_sub = ] 'enabled_for_het_sub' ]

Argomenti

  • [ @publication=] 'publication'
    Nome della pubblicazione da creare. publication è di tipo sysname e non prevede alcun valore predefinito. Il nome deve essere univoco all'interno del database.
  • [ @restricted=] 'restricted'
    Supportato solo per compatibilità con le versioni precedenti. Utilizzare default_access.
  • [ @sync_method=] 'sync_method**'**
    Modalità di sincronizzazione. sync_method è di tipo nvarchar(13) e i possibili valori sono i seguenti.

    Valore Descrizione

    native

    Genera l'output del programma per la copia di massa in modalità nativa per tutte le tabelle. Questo valore non è supportato per server di pubblicazione Oracle.

    character

    Genera l'output del programma per la copia di massa in modalità carattere per tutte le tabelle. Per un server di pubblicazione Oracle il valore character è valido solo per la replica snapshot.

    concurrent

    Genera l'output del programma per la copia di massa in modalità nativa per tutte le tabelle, senza tuttavia bloccare le tabelle durante lo snapshot. Questo valore è supportato solo per pubblicazioni transazionali. Questo valore non è supportato per server di pubblicazione Oracle.

    concurrent_c

    Genera l'output del programma per la copia di massa in modalità carattere per tutte le tabelle, senza tuttavia bloccare le tabelle durante lo snapshot. Questo valore è supportato solo per pubblicazioni transazionali.

    database snapshot

    Genera output del programma in modalità nativa per la copia di massa di tutte le tabelle da uno snapshot del database. Questa opzione richiede SQL Server 2005 Enterprise Edition Service Pack 2 o versione successiva.

    database snapshot character

    Genera output del programma in modalità carattere per la copia di massa di tutte le tabelle da uno snapshot del database. Questa opzione richiede SQL Server 2005 Enterprise Edition Service Pack 2 o versione successiva.

    NULL (predefinito)

    Per server di pubblicazione Microsoft SQL Server l'impostazione predefinita è native. Per server di pubblicazione non SQL Server l'impostazione predefinita è character quando il valore di repl_freq è snapshot e concurrent_c in tutti gli altri casi.

  • [ @repl_freq=] 'repl_freq'
    Tipo di frequenza di replica. repl_freq è di tipo nvarchar(10) e i possibili valori sono i seguenti.

    Valore Descrizione

    continuous (predefinito)

    Il server di pubblicazione genera l'output per tutte le transazioni basate su log. Per server di pubblicazione non SQL Server è necessario che sync_method sia impostato su concurrent_c.

    snapshot

    Il server di pubblicazione genera solo gli eventi di sincronizzazione pianificati. Per server di pubblicazione non SQL Server è necessario che sync_method sia impostato su character.

  • [ @description=] 'description'
    Descrizione facoltativa della pubblicazione. description è di tipo nvarchar(255) e il valore predefinito è NULL.
  • [ @status=] 'status'
    Specifica se i dati della pubblicazione sono disponibili. status è di tipo nvarchar(8) e i possibili valori sono i seguenti.

    Valore Descrizione

    active

    I dati della pubblicazione risultano immediatamente disponibili per i Sottoscrittori.

    inactive (predefinito)

    I dati della pubblicazione non sono disponibili per i Sottoscrittori quando viene creata la pubblicazione (è possibile creare una sottoscrizione, che tuttavia non viene elaborata).

    Questo parametro non è supportato per server di pubblicazione Oracle.

  • [ @independent_agent=] 'independent_agent'
    Specifica se per la pubblicazione è disponibile un agente di distribuzione autonomo. independent_agent è di tipo nvarchar(5) e il valore predefinito è FALSE. Se è true, per la pubblicazione è disponibile un agente di distribuzione autonomo. Se è false, per la pubblicazione viene utilizzato un agente di distribuzione condiviso e a ogni coppia database del server di pubblicazione/database del Sottoscrittore è associato un solo agente condiviso.
  • [ @immediate_sync=] 'immediate_synchronization'
    Specifica se i file di sincronizzazione della pubblicazione vengono creati a ogni esecuzione dell'agente snapshot. immediate_synchronization è di tipo nvarchar(5) e il valore predefinito è FALSE. Se è true, i file di sincronizzazione vengono creati o ricreati a ogni esecuzione dell'agente snapshot. Se l'esecuzione dell'agente snapshot viene completata prima della creazione della sottoscrizione, i Sottoscrittori possono ricevere i file di sincronizzazione immediatamente. Le nuove sottoscrizioni ricevono i file di sottoscrizione più recenti generati dall'ultima esecuzione dell'agente snapshot. Affinché immediate_synchronization possa essere true, è necessario che independent_agent sia impostato su true. Se è false, i file di sincronizzazione vengono creati solo se esistono nuove sottoscrizioni. È necessario chiamare la stored procedure sp_addsubscription per ogni sottoscrizione quando si aggiunge un nuovo articolo a una pubblicazione esistente in modo incrementale. I Sottoscrittori ricevono i file di sincronizzazione dopo la sottoscrizione solo se gli agenti snapshot sono stati avviati e completati.
  • [ @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. enabled_for_internet è di tipo nvarchar(5) e il valore predefinito è FALSE. Se è true, i file di sincronizzazione della pubblicazione vengono inseriti nella directory C:\Programmi\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp. La directory Ftp deve essere creata dall'utente.
  • [ @allow_push=] 'allow_push'
    Specifica se è consentito creare sottoscrizioni push per la pubblicazione specificata. allow_push è di tipo nvarchar(5) e il valore predefinito è TRUE, che consente di creare sottoscrizioni push per la pubblicazione.
  • [ @allow_pull=] 'allow_pull'
    Specifica se è consentito creare sottoscrizioni pull per la pubblicazione specificata. allow_pull è di tipo nvarchar(5) e il valore predefinito è FALSE. Se è false, non è consentito creare sottoscrizioni pull per la pubblicazione.
  • [ @allow_anonymous=] 'allow_anonymous'
    Specifica se è consentito creare sottoscrizioni anonime per la pubblicazione specificata. allow_anonymous è di tipo nvarchar(5) e il valore predefinito è FALSE. Se è true, è necessario impostare su true anche immediate_synchronization. Se è false, non è consentito creare sottoscrizioni anonime per la pubblicazione.
  • [ @allow_sync_tran=] 'allow_sync_tran'
    Specifica se è consentito creare sottoscrizioni ad aggiornamento immediato per la pubblicazione. allow_sync_tran è di tipo nvarchar(5) e il valore predefinito è FALSE. Il valore truenon è supportato per server di pubblicazione Oracle.
  • [ @autogen_sync_procs=] 'autogen_sync_procs'
    Specifica se la stored procedure di sincronizzazione per sottoscrizioni aggiornabili viene generata nel server di pubblicazione. autogen_sync_procs è di tipo nvarchar(5) e i possibili valori sono i seguenti.

    Valore Descrizione

    true

    Questo valore viene impostato automaticamente quando sono attivate le sottoscrizioni aggiornabili.

    false

    Questo valore viene impostato automaticamente quando non sono attivate le sottoscrizioni aggiornabili oppure per server di pubblicazione Oracle.

    NULL (predefinito)

    L'impostazione predefinita è true quando sono attivate le sottoscrizioni aggiornabili e false quando non sono attivate le sottoscrizioni aggiornabili.

    [!NOTA] Il valore specificato dall'utente per autogen_sync_procsviene ignorato in base ai valori specificati per allow_queued_tran e allow_sync_tran.

  • [ @retention=] retention
    Periodo di memorizzazione, espresso in ore, per le attività di sottoscrizione. retention è di tipo int e il valore predefinito è 336 ore. Se una sottoscrizione non viene attivata entro il periodo di memorizzazione, scade e viene rimossa. Il valore di questo parametro può essere maggiore del periodo di memorizzazione massimo del database di distribuzione utilizzato dal server di pubblicazione. Se è 0, le sottoscrizioni note della pubblicazione non scadono mai e non vengono rimosse dall'agente per l'eliminazione di sottoscrizioni scadute.
  • [ @allow_queued_tran= ] 'allow_queued_updating'
    Attiva o disattiva l'inserimento in coda delle modifiche apportate nel Sottoscrittore fino a quando non è possibile applicarle nel server di pubblicazione. allow_queued_updating è di tipo nvarchar(5) e il valore predefinito è FALSE. Se è false, le modifiche apportate nel Sottoscrittore non vengono inserite in coda. Il valore true non è supportato per server di pubblicazione Oracle.
  • [ @snapshot_in_defaultfolder= ] 'snapshot_in_default_folder'
    Specifica 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 sono archiviati nella posizione alternativa specificata in alternate_snapshot_folder. Le posizioni alternative possono 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 in modo che possano essere successivamente recuperati dal Sottoscrittore. Si noti che questo parametro può essere true anche quando è stata specificata una posizione nel parametro @alt_snapshot_folder. Tale combinazione indica che i file di snapshot vengono archiviati sia nella posizione predefinita che in quella alternativa.
  • [ @alt_snapshot_folder= ] 'alternate_snapshot_folder'
    Specifica la 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'
    Specifica un puntatore al percorso di un file con estensione sql. pre_snapshot_script è di tipo nvarchar(255) e il valore predefinito è NULL. L'agente di distribuzione esegue lo script pre-snapshot prima dell'esecuzione di tutti gli script di oggetti replicati durante l'applicazione di uno snapshot in un Sottoscrittore. Lo script viene eseguito nel contesto di protezione utilizzato dall'agente di distribuzione per la connessione al database di sottoscrizione.
  • [ @post_snapshot_script= ] 'post_snapshot_script'
    Specifica un puntatore al percorso di un file con estensione sql. post_snapshot_script è di tipo nvarchar(255) e il valore predefinito è NULL. L'agente di distribuzione esegue lo script post-snapshot dopo l'applicazione di tutti gli altri dati e script di oggetti replicati durante una sincronizzazione iniziale. Lo script viene eseguito nel contesto di protezione utilizzato dall'agente di distribuzione per la connessione al database di sottoscrizione.
  • [ @compress_snapshot= ] 'compress_snapshot'
    Specifica che lo snapshot archiviato nella posizione @alt_snapshot_folder deve essere compresso nel formato Microsoft CAB. compress_snapshot è di tipo nvarchar(5) e il valore predefinito è FALSE. Il valore false indica che lo snapshot non verrà compresso, mentre il valore true indica che lo snapshot verrà compresso. I file di snapshot con una dimensione superiore a 2 gigabyte (GB) non possono essere compressi. I file di snapshot compressi vengono decompressi nella posizione in cui viene eseguito l'agente di distribuzione. Per le sottoscrizioni pull in genere vengono utilizzati snapshot compressi in modo che i file vengano decompressi nel Sottoscrittore. Non è possibile comprimere lo snapshot nella cartella predefinita.
  • [ @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. Specifica la posizione in cui i file di snapshot della pubblicazione possono essere prelevati dall'agente di distribuzione o 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 propagazione 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 in cui i file di snapshot della pubblicazione possono essere prelevati dall'agente di distribuzione o 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'
    Specifica la posizione in cui i file di snapshot possono essere prelevati dall'agente di distribuzione o di merge di un Sottoscrittore se la pubblicazione supporta la propagazione 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_subdirectory diverso. È anche possibile specificare il valore NULL se non si desidera utilizzare una sottodirectory.
  • [ @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 dell'utente utilizzata per la connessione al servizio FTP. ftp_password è di tipo sysname e il valore predefinito è NULL.
  • [ @allow_dts = ] 'allow_dts'
    Specifica che la pubblicazione supporta le trasformazioni di dati. Quando si crea una sottoscrizione, è possibile specificare un pacchetto DTS. allow_transformable_subscriptions è di tipo nvarchar(5) e il valore predefinito è FALSE, che non consente trasformazioni DTS. Quando allow_dts è impostato su true, sync_method deve essere impostato su character o concurrent_c.

    Il valore true non è supportato per server di pubblicazione Oracle.

  • [ @allow_subscription_copy = ] 'allow_subscription_copy'
    Attiva o disattiva la funzionalità che consente di copiare i database di sottoscrizione che sottoscrivono la pubblicazione. allow_subscription_copy è di tipo nvarchar(5) e il valore predefinito è FALSE.
  • [ @conflict_policy = ] 'conflict_policy'
    Specifica il criterio di risoluzione dei conflitti adottato quando viene utilizzata l'opzione per Sottoscrittori ad aggiornamento in coda. conflict_policy è di tipo nvarchar(100) e il valore predefinito è NULL. I possibili valori sono i seguenti.

    Valore Descrizione

    pub wins

    Prevale il server di pubblicazione.

    sub reinit

    La sottoscrizione viene reinizializzata.

    sub wins

    Prevale il Sottoscrittore.

    NULL (predefinito)

    Se è NULL e la pubblicazione è di tipo snapshot, il criterio di risoluzione dei conflitti predefinito è sub reinit. Se è NULL e la pubblicazione non è di tipo snapshot, il criterio di risoluzione dei conflitti predefinito è pub wins.

    Questo parametro non è supportato per server di pubblicazione Oracle.

  • [ @centralized_conflicts = ] 'centralized_conflicts'
    Specifica se i record dei conflitti vengono archiviati nel server di pubblicazione. centralized_conflicts è di tipo nvarchar(5) e il valore predefinito è TRUE. Se è true, i record dei conflitti vengono archiviati nel server di pubblicazione. Se è false, i record dei conflitti vengono archiviati sia nel server di pubblicazione che nel Sottoscrittore che ha causato il conflitto. Questo parametro non è supportato per server di pubblicazione Oracle.
  • [ @conflict_retention = ] conflict_retention
    Specifica il periodo di memorizzazione dei conflitti, espresso in giorni. conflict_retention è di tipo int e il valore predefinito è 14. Questo parametro non è supportato per server di pubblicazione Oracle.
  • [ @queue_type = ] 'queue_type'
    Specifica il tipo di coda da utilizzare. queue_type è di tipo nvarchar(10) e il valore predefinito è NULL. I possibili valori sono i seguenti.

    Valore Descrizione

    sql

    Consente di utilizzare SQL Server per l'archiviazione delle transazioni.

    NULL (predefinito)

    L'impostazione predefinita è sql, che consente di utilizzare SQL Server per l'archiviazione delle transazioni.

    [!NOTA] L'utilizzo di MSMQ (Microsoft Message Queuing) non è più supportato. Se si specifica il valore msmq, verrà visualizzato un messaggio di avviso e verrà impostato automaticamente il valore sql.

    Questo parametro non è supportato per server di pubblicazione Oracle.

  • [ @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.
  • [ @logreader_job_name = ] 'logreader_agent_name'
    Nome di un processo esistente dell'agente. logreader_agent_name è di tipo sysname e il valore predefinito è NULL. Questo parametro viene specificato solo quando l'agente di lettura log utilizzerà un processo esistente anziché uno nuovo.
  • [ @qreader_job_name = ] 'queue_reader_agent_name'
    Nome di un processo esistente dell'agente. queue_reader_agent_name è di tipo sysname e il valore predefinito è NULL. Questo parametro viene specificato solo quando l'agente di lettura coda utilizzerà un processo esistente anziché uno nuovo.
  • [ @publisher= ] 'publisher'
    Specifica un server di pubblicazione non SQL Server. publisher è di tipo sysname e il valore predefinito è NULL.

    [!NOTA] Evitare di utilizzare publisher quando si aggiunge una pubblicazione in un server di pubblicazione SQL Server.

  • [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup'
    Specifica se i Sottoscrittori possono inizializzare una sottoscrizione di questa pubblicazione da un backup anziché da uno snapshot iniziale. allow_initialize_from_backup è di tipo nvarchar(5) e i possibili valori sono i seguenti:

    Valore Descrizione

    true

    Attiva l'inizializzazione da un backup.

    false

    Disattiva l'inizializzazione da un backup.

    NULL (predefinito)

    L'impostazione predefinita è true per pubblicazioni in una topologia di replica peer-to-peer e false per tutte le altre pubblicazioni.

    Per ulteriori informazioni, vedere Inizializzazione di una sottoscrizione transazionale senza uno snapshot.

  • [ @replicate_ddl= ] replicate_ddl
    Specifica se la replica dello schema è supportata per la pubblicazione. replicate_ddl è di tipo int e il valore predefinito è 1 per server di pubblicazione SQL Server e 0 per server di pubblicazione non SQL Server. Il valore 1 indica che le istruzioni DDL (Data Definition Language) eseguite nel server di pubblicazione vengono replicate, mentre il valore 0 indica che le istruzioni DDL non vengono replicate. La replica dello schema non è supportata per server di pubblicazione Oracle. Per ulteriori informazioni, vedere Modifiche allo schema nei database di pubblicazione.
  • [ @enabled_for_p2p= ] 'enabled_for_p2p'
    Consente di utilizzare la pubblicazione in una topologia di replica peer-to-peer. enabled_for_p2p è di tipo nvarchar(5) e il valore predefinito è FALSE. Il valore true indica che la pubblicazione supporta la replica peer-to-peer. Quando si imposta enabled_for_p2p su true, è necessario rispettare i requisiti seguenti:

    • Il parametro allow_anonymous deve essere impostato su false.
    • Il parametro allow_dts deve essere impostato su false.
    • Il parametro allow_initialize_from_backup deve essere impostato su true.
    • Il parametro allow_queued_tran deve essere impostato su false.
    • Il parametro allow_sync_tran deve essere impostato su false.
    • Il parametro conflict_policy deve essere impostato su false.
    • Il parametro independent_agent deve essere impostato su true.

    Il parametro repl_freq deve essere impostato su continuous.

    • Il parametro replicate_ddl deve essere impostato su 1.

    Per ulteriori informazioni, vedere Replica transazionale peer-to-peer.

  • [ @publish_local_changes_only= ] 'publish_local_changes_only'
    Solo per uso interno.
  • [ @enabled_for_het_sub= ] 'enabled_for_het_sub'
    Specifica se la pubblicazione supporta Sottoscrittori non SQL Server. enabled_for_het_sub è di tipo nvarchar(5) e il valore predefinito è FALSE. Il valore true indica che la pubblicazione supporta Sottoscrittori non SQL Server. Quando si imposta enabled_for_het_sub su true, è necessario rispettare i requisiti seguenti:

    • Il parametro allow_initialize_from_backup deve essere impostato su false.
    • Il parametro allow_push deve essere impostato su true.
    • Il parametro allow_queued_tran deve essere impostato su false.
    • Il parametro allow_subscription_copy deve essere impostato su false.
    • Il parametro allow_sync_tran deve essere impostato su false.
    • Il parametro autogen_sync_procs deve essere impostato su false.
    • Il parametro conflict_policy deve essere impostato su NULL.
    • Il parametro enabled_for_internet deve essere impostato su false.
    • Il parametro enabled_for_p2p deve essere impostato su false.
    • Il parametro ftp_address deve essere impostato su NULL.
    • Il parametro ftp_subdirectory deve essere impostato su NULL.
    • Il parametro ftp_password deve essere impostato su NULL.
    • Il parametro pre_snapshot_script deve essere impostato su NULL.
    • Il parametro post_snapshot_script deve essere impostato su NULL.
    • Il parametro replicate_ddl deve essere impostato su 0.
    • Il parametro qreader_job_name deve essere impostato su NULL.
    • Il parametro queue_type deve essere impostato su NULL.
    • Il parametro sync_method non deve essere impostato su native o concurrent.

    Per ulteriori informazioni, vedere Sottoscrittori non SQL Server.

Osservazioni

sp_addpublication viene utilizzata per la replica snapshot e transazionale.

Se esistono più pubblicazioni dello stesso oggetto di database, le istruzioni ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION e ALTER TRIGGER DDL verranno replicate solo per le pubblicazioni con il parametro replicate_ddl impostato su 1. L'istruzione ALTER TABLE DROP COLUMN DDL, tuttavia, verrà replicata per tutte le pubblicazioni che pubblicano la colonna eliminata.

Quando per una pubblicazione è attivata la replica DDL (replicate_ddl = 1), per apportare alla pubblicazione modifiche DDL da non replicare, è necessario prima eseguire sp_changepublication (Transact-SQL) per impostare replicate_ddl su 0. Dopo l'esecuzione delle istruzioni DDL da non replicare, eseguire di nuovo sp_changepublication (Transact-SQL) 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_addpublication.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Esempio

-- To avoid storing the login and password in the script file, the values 
-- are passed into SQLCMD as scripting variables. 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".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksProductTran'; 
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- This should be passed at runtime.
SET @password = $(Password); 

-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Create a new transactional publication with the required properties. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_push = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;
GO

Vedere anche

Riferimento

sp_addlogreader_agent (Transact-SQL)
sp_addpublication_snapshot (Transact-SQL)
sp_changepublication (Transact-SQL)
sp_droppublication (Transact-SQL)
sp_helppublication (Transact-SQL)
sp_replicationdboption (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 sui nuovi valori disponibili per il parametro @sync_method.