Condividi tramite


sp_addpublication_snapshot (Transact-SQL)

Crea l'agente snapshot per la pubblicazione specificata. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Nota sulla sicurezzaNota sulla sicurezza

 Quando si configura un server di distribuzione remoto per un server di pubblicazione, i valori specificati per tutti i parametri, inclusi job_login e job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per ulteriori informazioni, vedere Crittografia delle connessioni a SQL Server.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_addpublication_snapshot [ @publication= ] 'publication'
    [ , [ @frequency_type= ] frequency_type ]
    [ , [ @frequency_interval= ] frequency_interval ]
    [ , [ @frequency_subday= ] frequency_subday ]
    [ , [ @frequency_subday_interval= ] frequency_subday_interval ]
    [ , [ @frequency_relative_interval= ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ]
    [ , [ @active_start_date= ] active_start_date ]
    [ , [ @active_end_date= ] active_end_date ]
    [ , [ @active_start_time_of_day= ] active_start_time_of_day ]
    [ , [ @active_end_time_of_day= ] active_end_time_of_day ]
    [ , [ @snapshot_job_name = ] 'snapshot_agent_name' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] 'publisher_login' ]
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @job_login = ] 'job_login' ]
    [ , [ @job_password = ] 'job_password' ]
    [ , [ @publisher = ] 'publisher' ]

Argomenti

  • [ @publication=] 'publication'
    Nome della pubblicazione. publication è di tipo sysname e non prevede alcun valore predefinito.

  • [ @frequency_type=] frequency_type
    Frequenza di esecuzione dell'agente snapshot. frequency_type è di tipo int. I possibili valori sono i seguenti.

    Valore

    Descrizione

    1

    Singola occorrenza.

    4 (predefinito)

    Giornaliera.

    8

    Settimanale.

    16

    Mensile.

    32

    Mensile relativa, in base all'intervallo di frequenza.

    64

    All'avvio di SQL Server Agent.

    128

    Quando il computer è inattivo

  • [ @frequency_interval=] frequency_interval
    Valore da applicare alla frequenza impostata da frequency_type. frequency_interval è di tipo int. I possibili valori sono i seguenti:

    Valore di frequency_type

    Effetto su frequency_interval

    1

    frequency_interval non viene utilizzato.

    4 (predefinito)

    Ogni numero di giorni indicato da frequency_interval, con un valore predefinito corrispondente alla frequenza giornaliera.

    8

    frequency_interval corrisponde a uno o più dei valori seguenti (uniti tramite l'operatore logico | (OR bit per bit)):

    1 = Domenica |

    2 = Lunedì |

    4 = Martedì |

    8 = Mercoledì |

    16 = Giovedì |

    32 = Venerdì |

    64 = Sabato |

    16

    Il giorno del mese indicato da frequency_interval.

    32

    frequency_interval corrisponde a uno dei valori seguenti:

    1 = Domenica |

    2 = Lunedì |

    3 = Martedì |

    4 = Mercoledì |

    5 = Giovedì |

    6 = Venerdì |

    7 = Sabato |

    8 = Giorno |

    9 = Giorno feriale |

    10 = Giorno festivo

    64

    frequency_interval non viene utilizzato.

    128

    frequency_interval non viene utilizzato.

  • [ @frequency_subday=] frequency_subday
    Unità di freq_subday_interval. frequency_subday è di tipo int. I possibili valori sono i seguenti.

    Valore

    Descrizione

    1

    Una volta

    2

    Secondo

    4 (predefinito)

    Minuto

    8

    Ora

  • [ @frequency_subday_interval=] frequency_subday_interval
    Intervallo per frequency_subday. frequency_subday_interval è di tipo int e il valore predefinito è 5, che corrisponde a ogni 5 minuti.

  • [ @frequency_relative_interval=] frequency_relative_interval
    Data di esecuzione dell'agente snapshot. frequency_relative_interval è di tipo int e il valore predefinito è 1.

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Fattore di ricorrenza utilizzato da frequency_type. frequency_recurrence_factor è di tipo di int e il valore predefinito è 0.

  • [ @active_start_date=] active_start_date
    Data della prima esecuzione pianificata dell'agente snapshot, nel formato AAAAMMGG. active_start_date è di tipo int e il valore predefinito è 0.

  • [ @active_end_date=] active_end_date
    Data dell'ultima esecuzione pianificata dell'agente snapshot, nel formato AAAAMMGG. active_end_date è di tipo int e il valore predefinito è 99991231, che corrisponde al 31 dicembre 9999.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Ora del giorno della prima esecuzione pianificata dell'agente snapshot, nel formato HHMMSS. active_start_time_of_day è di tipo int e il valore predefinito è 0.

  • [ @active_end_time_of_day=] active_end_time_of_day
    Ora del giorno dell'ultima esecuzione pianificata dell'agente snapshot, nel formato HHMMSS. active_end_time_of_day è di tipo int e il valore predefinito è 235959, che corrisponde alle 23.59.59 nel formato 24 ore.

  • [ @snapshot_job_name = ] 'snapshot_agent_name'
    Nome di un processo esistente, se utilizzato, per l'agente snapshot. snapshot_agent_name è di tipo nvarchar(100) e il valore predefinito è NULL. Questo parametro è per uso interno e non deve essere specificato per la creazione di una nuova pubblicazione. Se si specifica snapshot_agent_name, il valore di job_login e job_password deve essere NULL.

  • [ @publisher_security_mode= ] publisher_security_mode
    Modalità di protezione utilizzata dall'agente per la connessione al server di pubblicazione. publisher_security_mode è di tipo smallint e il valore predefinito è 1. 0 specifica l'autenticazione di SQL Server e 1 l'autenticazione di Windows. È necessario specificare il valore 0 per i server di pubblicazione non SQL Server. Se possibile, utilizzare l'autenticazione di Windows.

  • [ @publisher_login= ] 'publisher_login'
    Account di accesso utilizzato per la connessione al server di pubblicazione. publisher_login è di tipo sysname e il valore predefinito è NULL. È necessario specificare publisher_login se publisher_security_mode è 0. Se publisher_login è NULL e il valore di publisher_security_mode è 1, per la connessione al server di pubblicazione verrà utilizzato l'account di Windows specificato in job_login.

  • [ @publisher_password= ] 'publisher_password'
    Password utilizzata per la connessione al server di pubblicazione. publisher_password è di tipo sysname e il valore predefinito è NULL.

    Nota sulla sicurezzaNota sulla sicurezza

    Non archiviare informazioni di autenticazione in file script. Per migliorare la protezione, si consiglia di specificare nomi e password di accesso in fase di esecuzione.

  • [ @job_login= ] 'job_login'
    Account di accesso per l'account di Windows utilizzato per l'esecuzione dell'agente. job_login è di tipo nvarchar(257) e il valore predefinito è NULL. Questo account di Windows viene sempre utilizzato per le connessioni dell'agente al server di distribuzione. È necessario specificare questo parametro per la creazione di un nuovo processo per l'agente snapshot.

    Nota

    Per server di pubblicazione non SQL Server, deve corrispondere all'account di accesso specificato in sp_adddistpublisher (Transact-SQL).

  • [ @job_password= ] 'job_password'
    Password dell'account di Windows utilizzato per l'esecuzione dell'agente. job_password è di tipo sysname e non prevede alcun valore predefinito. È necessario specificare questo parametro per la creazione di un nuovo processo per l'agente snapshot.

    Nota sulla sicurezzaNota sulla sicurezza

    Non archiviare informazioni di autenticazione in file script. Per migliorare la protezione, si consiglia di specificare nomi e password di accesso in fase di esecuzione.

  • [ @publisher= ] 'publisher'
    Specifica un server di pubblicazione non SQL Server. publisher è di tipo sysname e il valore predefinito è NULL.

    Nota

    Non utilizzare publisher per la creazione di un agente snapshot in un server di pubblicazione SQL Server.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

La stored procedure sp_addpublication_snapshot viene utilizzata per la replica snapshot, transazionale e di tipo merge.

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'AdventureWorks2008R2'; 
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

Autorizzazioni

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