sp_addpublication_snapshot (Transact-SQL)sp_addpublication_snapshot (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

Crea l'agente snapshot per la pubblicazione specificata.Creates the Snapshot Agent for the specified publication. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.This stored procedure is executed at the Publisher on the publication database.

Importante

Quando si configura un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutti i parametri, inclusi job_login e job_password, vengono inviati al server di distribuzione come testo normale.When configuring a Publisher with a remote Distributor, the values supplied for all parameters, including job_login and job_password, are sent to the Distributor as plain text. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure.You should encrypt the connection between the Publisher and its remote Distributor before executing this stored procedure. Per altre informazioni, vedere Abilitare le connessioni crittografate al motore di database (Gestione configurazione SQL Server).For more information, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager).

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

SintassiSyntax


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

ArgomentiArguments

[ @publication=] 'pubblicazione'[ @publication=] 'publication'
Nome della pubblicazione.Is the name of the publication. pubblicazione viene sysname, non prevede alcun valore predefinito.publication is sysname, with no default.

[ @frequency_type=] frequency_type[ @frequency_type=] frequency_type
Frequenza di esecuzione dell'agente snapshot.Is the frequency with which the Snapshot Agent is executed. frequency_type viene int, e può essere uno dei valori seguenti.frequency_type is int, and can be one of the following values.

ValueValue DescrizioneDescription
11 Singola occorrenza.Once.
4 (impostazione predefinita)4 (default) Giornaliera.Daily.
88 Settimanale.Weekly.
1616 Mensile.Monthly.
3232 Mensile relativa, in base all'intervallo di frequenza.Monthly, relative to the frequency interval.
6464 All'avvio di SQL ServerSQL Server Agent.When SQL ServerSQL Server Agent starts.
128128 Quando il computer è inattivoRun when the computer is idle

[ @frequency_interval=] frequency_interval[ @frequency_interval=] frequency_interval
È il valore da applicare alla frequenza impostata da frequency_type.Is the value to apply to the frequency set by frequency_type. frequency_interval viene int, e può essere uno dei valori seguenti.frequency_interval is int, and can be one of the following values.

Valore di frequency_typeValue of frequency_type Effetto su frequency_intervalEffect on frequency_interval
11 frequency_interval è inutilizzato.frequency_interval is unused.
4 (impostazione predefinita)4 (default) Ogni frequency_interval giorni, con il valore predefinito è ogni giorno.Every frequency_interval days, with a default of daily.
88 frequency_interval corrisponde a uno o più dei valori seguenti (combinato con un | (OR bit per bit) operatore logico):frequency_interval is one or more of the following (combined with a | (Bitwise OR) logical operator):

1 = domenica|1 = Sunday |

2 = lunedì|2 = Monday |

4 = martedì|4 = Tuesday |

8 = mercoledì|8 = Wednesday |

16 = giovedì|16 = Thursday |

32 = venerdì|32 = Friday |

64 = sabato64 = Saturday
1616 Nel frequency_interval giorno del mese.On the frequency_interval day of the month.
3232 frequency_interval è uno dei seguenti:frequency_interval is one of the following:

1 = domenica|1 = Sunday |

2 = lunedì|2 = Monday |

3 = martedì|3 = Tuesday |

4 = mercoledì|4 = Wednesday |

5 = giovedì|5 = Thursday |

6 = venerdì|6 = Friday |

7 = sabato|7 = Saturday |

8 = giorno|8 = Day |

9 = giorno feriale|9 = Weekday |

10 = giorno festivo10 = Weekend day
6464 frequency_interval è inutilizzato.frequency_interval is unused.
128128 frequency_interval è inutilizzato.frequency_interval is unused.

[ @frequency_subday=] frequency_subday[ @frequency_subday=] frequency_subday
Unità di freq_subday_interval.Is the unit for freq_subday_interval. frequency_subday viene int, e può essere uno dei valori seguenti.frequency_subday is int, and can be one of these values.

ValueValue DescrizioneDescription
11 Una voltaOnce
22 SecondoSecond
4 (impostazione predefinita)4 (default) MinutoMinute
88 OraHour

[ @frequency_subday_interval=] frequency_subday_interval[ @frequency_subday_interval=] frequency_subday_interval
Intervallo per frequency_subday.Is the interval for frequency_subday. frequency_subday_interval viene int, con un valore predefinito è 5, ovvero ogni 5 minuti.frequency_subday_interval is int, with a default of 5, which means every 5 minutes.

[ @frequency_relative_interval=] frequency_relative_interval[ @frequency_relative_interval=] frequency_relative_interval
Data di esecuzione dell'agente snapshot.Is the date the Snapshot Agent runs. frequency_relative_interval viene int, con un valore predefinito è 1.frequency_relative_interval is int, with a default of 1.

[ @frequency_recurrence_factor=] frequency_recurrence_factor[ @frequency_recurrence_factor=] frequency_recurrence_factor
Fattore di occorrenza utilizzato da frequency_type.Is the recurrence factor used by frequency_type. frequency_recurrence_factor viene int, con un valore predefinito è 0.frequency_recurrence_factor is int, with a default of 0.

[ @active_start_date=] active_start_date[ @active_start_date=] active_start_date
Data della prima esecuzione pianificata dell'agente snapshot, nel formato YYYYMMDD.Is the date when the Snapshot Agent is first scheduled, formatted as YYYYMMDD. active_start_date viene int, con un valore predefinito è 0.active_start_date is int, with a default of 0.

[ @active_end_date=] active_end_date[ @active_end_date=] active_end_date
Data dell'ultima esecuzione pianificata dell'agente snapshot, nel formato YYYYMMDD.Is the date when the Snapshot Agent stops being scheduled, formatted as YYYYMMDD. active_end_date viene int, con un valore predefinito è 99991231, che corrisponde al 31 dicembre 9999.active_end_date is int, with a default of 99991231, which means December 31, 9999.

[ @active_start_time_of_day=] active_start_time_of_day[ @active_start_time_of_day=] active_start_time_of_day
Ora del giorno della prima esecuzione pianificata dell'agente snapshot, nel formato HHMMSS.Is the time of day when the Snapshot Agent is first scheduled, formatted as HHMMSS. active_start_time_of_day viene int, con un valore predefinito è 0.active_start_time_of_day is int, with a default of 0.

[ @active_end_time_of_day=] active_end_time_of_day[ @active_end_time_of_day=] active_end_time_of_day
Ora del giorno dell'ultima esecuzione pianificata dell'agente snapshot, nel formato HHMMSS.Is the time of day when the Snapshot Agent stops being scheduled, formatted as HHMMSS. active_end_time_of_day viene int, un valore predefinito è 235959, che corrisponde alle 11:59: le ore 23.59.59active_end_time_of_day is int, with a default of 235959, which means 11:59:59 P.M. nel formato 24 ore.as measured on a 24-hour clock.

[ @snapshot_job_name = ] 'snapshot_agent_name'[ @snapshot_job_name = ] 'snapshot_agent_name'
Nome di un processo dell'agente snapshot esistente se viene utilizzato un processo esistente.Is the name of an existing Snapshot Agent job name if an existing job is being used. snapshot_agent_name viene nvarchar(100) con valore predefinito è NULL.snapshot_agent_name is nvarchar(100) with a default value of NULL. Questo parametro è per uso interno e non deve essere specificato per la creazione di una nuova pubblicazione.This parameter is for internal use and should not be specified when creating a new publication. Se snapshot_agent_name non viene specificato, job_login e job_password deve essere NULL.If snapshot_agent_name is specified, then job_login and job_password must be NULL.

[ @publisher_security_mode=] publisher_security_mode[ @publisher_security_mode= ] publisher_security_mode
Modalità di sicurezza utilizzata dall'agente per la connessione al server di pubblicazione.Is the security mode used by the agent when connecting to the Publisher. publisher_security_mode viene smallint, con un valore predefinito è 1.publisher_security_mode is smallint, with a default of 1. 0 specifica SQL ServerSQL Server l'autenticazione, e 1 specifica l'autenticazione di Windows.0 specifies SQL ServerSQL Server Authentication, and 1 specifies Windows Authentication. Il valore 0 deve essere specificato per non SQL ServerSQL Server i server di pubblicazione.A value of 0 must be specified for non- SQL ServerSQL Server Publishers. Se possibile, usare l'autenticazione di Windows.When possible, use Windows Authentication.

[ @publisher_login=] 'publisher_login'[ @publisher_login= ] 'publisher_login'
Account di accesso utilizzato per la connessione al server di pubblicazione.Is the login used when connecting to the Publisher. publisher_login viene sysname, con un valore predefinito è NULL.publisher_login is sysname, with a default of NULL. publisher_login deve essere specificato quando publisher_security_mode viene 0.publisher_login must be specified when publisher_security_mode is 0. Se publisher_login è NULL e publisher_security_mode è 1, l'account Windows specificato job_login verrà utilizzato Quando ci si connette al server di pubblicazione.If publisher_login is NULL and publisher_security_mode is 1, then the Windows account specified in job_login will be used when connecting to the Publisher.

[ @publisher_password=] 'publisher_password'[ @publisher_password= ] 'publisher_password'
Password utilizzata per la connessione al server di pubblicazione.Is the password used when connecting to the Publisher. publisher_password viene sysname, con un valore predefinito è NULL.publisher_password is sysname, with a default of NULL.

Importante

Non archiviare informazioni di autenticazione in file script.Do not store authentication information in script files. Per migliorare la sicurezza, si consiglia di specificare nomi e password di accesso in fase di esecuzione.To help improve security, we recommend that you provide login names and passwords at run time.

[ @job_login=] 'job_login'[ @job_login= ] 'job_login'
Account di accesso per l'account di Windows utilizzato per l'esecuzione dell'agente.Is the login for the Windows account under which the agent runs. job_login viene nvarchar(257), con un valore predefinito è NULL.job_login is nvarchar(257), with a default of NULL. Questo account di Windows viene sempre utilizzato per le connessioni dell'agente al server di distribuzione.This Windows account is always used for agent connections to the Distributor. È necessario specificare questo parametro per la creazione di un nuovo processo per l'agente snapshot.You must supply this parameter when creating a new Snapshot Agent job.

Nota

Per non - SQL ServerSQL Server i server di pubblicazione deve essere l'account di accesso specificato sp_adddistpublisher (Transact-SQL).For non- SQL ServerSQL Server Publishers, this must be the same login specified in sp_adddistpublisher (Transact-SQL).

[ @job_password=] 'job_password'[ @job_password= ] 'job_password'
Password dell'account di Windows utilizzato per l'esecuzione dell'agente.Is the password for the Windows account under which the agent runs. job_password viene sysname, non prevede alcun valore predefinito.job_password is sysname, with no default. È necessario specificare questo parametro per la creazione di un nuovo processo per l'agente snapshot.You must supply this parameter when creating a new Snapshot Agent job.

Importante

Non archiviare informazioni di autenticazione in file script.Do not store authentication information in script files. Per migliorare la sicurezza, si consiglia di specificare nomi e password di accesso in fase di esecuzione.To help improve security, we recommend that you provide login names and passwords at run time.

[ @publisher=] 'publisher'[ @publisher= ] 'publisher'
Specifica un server di pubblicazione non SQL ServerSQL Server.Specifies a non- SQL ServerSQL Server Publisher. server di pubblicazione viene sysname, con un valore predefinito è NULL.publisher is sysname, with a default of NULL.

Nota

server di pubblicazione non deve essere utilizzato durante la creazione di un agente Snapshot in un SQL ServerSQL Server server di pubblicazione.publisher should not be used when creating a Snapshot Agent at a SQL ServerSQL Server Publisher.

Valori restituitiReturn Code Values

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

OsservazioniRemarks

sp_addpublication_snapshot viene utilizzata nella replica snapshot, transazionale e di tipo merge.sp_addpublication_snapshot is used in snapshot replication, transactional replication, and merge replication.

EsempioExample

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

AutorizzazioniPermissions

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

Vedere ancheSee Also

Creare una pubblicazione Create a Publication
Creare e applicare lo snapshot Create and Apply the Snapshot
sp_addpublication (Transact-SQL) sp_addpublication (Transact-SQL)
sp_changepublication_snapshot (Transact-SQL) sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot (Transact-SQL) sp_startpublication_snapshot (Transact-SQL)
Stored procedure per la replica (Transact-SQL)Replication Stored Procedures (Transact-SQL)