sp_addpublication_snapshot (Transact-SQL)sp_addpublication_snapshot (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database (Managed Instance uniquement) nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Crée l'Agent d'instantané pour la publication spécifiée.Creates the Snapshot Agent for the specified publication. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.This stored procedure is executed at the Publisher on the publication database.

Important

Lors de la configuration d'un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour tous les paramètres, y compris job_login et job_password, sont envoyées en texte brut au serveur de distribution.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. Vous devez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter cette procédure stockée.You should encrypt the connection between the Publisher and its remote Distributor before executing this stored procedure. Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server).For more information, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager).

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

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

ArgumentsArguments

[ @publication = ] 'publication'Nom de la publication.[ @publication = ] 'publication' Is the name of the publication. publication est de type sysname, sans valeur par défaut.publication is sysname, with no default.

[ @frequency_type = ] frequency_typeFréquence à laquelle l’Agent d’instantané est exécutée.[ @frequency_type = ] frequency_type Is the frequency with which the Snapshot Agent is executed. frequency_type est de type intet peut prendre l’une des valeurs suivantes.frequency_type is int, and can be one of the following values.

ValueValue DescriptionDescription
11 Une seule fois.Once.
4 (par défaut)4 (default) Tous les jours.Daily.
88 Toutes les semaines.Weekly.
1616 Tous les mois.Monthly.
3232 Tous les mois, en fonction de l'intervalle de fréquence.Monthly, relative to the frequency interval.
6464 Au démarrage de l'Agent SQL ServerSQL Server.When SQL ServerSQL Server Agent starts.
128128 Exécution pendant une période d'inactivité de l'ordinateur.Run when the computer is idle

[ @frequency_interval = ] frequency_intervalValeur à appliquer à la fréquence définie par frequency_type.[ @frequency_interval = ] frequency_interval Is the value to apply to the frequency set by frequency_type. frequency_interval est de type intet peut prendre l’une des valeurs suivantes.frequency_interval is int, and can be one of the following values.

Valeur de frequency_typeValue of frequency_type Effet sur frequency_intervalEffect on frequency_interval
11 frequency_interval n’est pas utilisé.frequency_interval is unused.
4 (par défaut)4 (default) Tous les frequency_interval jours, avec une valeur par défaut quotidienne.Every frequency_interval days, with a default of daily.
88 frequency_interval est une ou plusieurs des valeurs suivantes (combinées avec un | opérateur logique (or au niveau du bit) ):frequency_interval is one or more of the following (combined with a | (Bitwise OR) logical operator):

1 = dimanche|1 = Sunday |

2 = lundi|2 = Monday |

4 = mardi|4 = Tuesday |

8 = mercredi|8 = Wednesday |

16 = jeudi|16 = Thursday |

32 = vendredi|32 = Friday |

64 = samedi64 = Saturday
1616 Le frequency_interval jour du mois.On the frequency_interval day of the month.
3232 frequency_interval est l’un des éléments suivants:frequency_interval is one of the following:

1 = dimanche|1 = Sunday |

2 = lundi|2 = Monday |

3 = mardi|3 = Tuesday |

4 = mercredi|4 = Wednesday |

5 = jeudi|5 = Thursday |

6 = vendredi|6 = Friday |

7 = samedi|7 = Saturday |

8 = jour|8 = Day |

9 = jour de semaine|9 = Weekday |

10 = jour de week-end10 = Weekend day
6464 frequency_interval n’est pas utilisé.frequency_interval is unused.
128128 frequency_interval n’est pas utilisé.frequency_interval is unused.

[ @frequency_subday = ] frequency_subdayUnité pour freq_subday_interval.[ @frequency_subday = ] frequency_subday Is the unit for freq_subday_interval. frequency_subday est de type intet peut prendre l’une des valeurs suivantes.frequency_subday is int, and can be one of these values.

ValueValue DescriptionDescription
11 Une foisOnce
22 SecondeSecond
4 (par défaut)4 (default) MinuteMinute
88 HeureHour

[ @frequency_subday_interval = ] frequency_subday_intervalIntervalle de frequency_subday.[ @frequency_subday_interval = ] frequency_subday_interval Is the interval for frequency_subday. frequency_subday_interval est de type int, avec 5 comme valeur par défaut, c’est-à-dire toutes les 5 minutes.frequency_subday_interval is int, with a default of 5, which means every 5 minutes.

[ @frequency_relative_interval = ] frequency_relative_intervalDate à laquelle le Agent d’instantané s’exécute.[ @frequency_relative_interval = ] frequency_relative_interval Is the date the Snapshot Agent runs. frequency_relative_interval est de type int, avec 1 comme valeur par défaut.frequency_relative_interval is int, with a default of 1.

[ @frequency_recurrence_factor = ] frequency_recurrence_factorFacteur de récurrence utilisé par frequency_type.[ @frequency_recurrence_factor = ] frequency_recurrence_factor Is the recurrence factor used by frequency_type. frequency_recurrence_factor est de type int, avec 0 comme valeur par défaut.frequency_recurrence_factor is int, with a default of 0.

[ @active_start_date = ] active_start_dateDate à laquelle le Agent d’instantané est planifié pour la première fois, au format AAAAMMJJ.[ @active_start_date = ] active_start_date Is the date when the Snapshot Agent is first scheduled, formatted as YYYYMMDD. active_start_date est de type int, avec 0 comme valeur par défaut.active_start_date is int, with a default of 0.

[ @active_end_date = ] active_end_dateDate à laquelle le Agent d’instantané cesse d’être planifié, au format AAAAMMJJ.[ @active_end_date = ] active_end_date Is the date when the Snapshot Agent stops being scheduled, formatted as YYYYMMDD. active_end_date est de type int, avec 99991231 comme valeur par défaut, ce qui correspond au 31 décembre 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_dayHeure de la journée à laquelle le Agent d’instantané est planifié pour la première fois, au format HHMMSS.[ @active_start_time_of_day = ] active_start_time_of_day Is the time of day when the Snapshot Agent is first scheduled, formatted as HHMMSS. active_start_time_of_day est de type int, avec 0 comme valeur par défaut.active_start_time_of_day is int, with a default of 0.

[ @active_end_time_of_day = ] active_end_time_of_dayHeure de la journée à laquelle le Agent d’instantané cesse d’être planifié, au format HHMMSS.[ @active_end_time_of_day = ] active_end_time_of_day Is the time of day when the Snapshot Agent stops being scheduled, formatted as HHMMSS. active_end_time_of_day est de type int, avec 235959 comme valeur par défaut, ce qui signifie 11:59:59 P.M.active_end_time_of_day is int, with a default of 235959, which means 11:59:59 P.M. mesurée sur une horloge de 24 heures.as measured on a 24-hour clock.

[ @snapshot_job_name = ] 'snapshot_agent_name'Nom d’un Agent d’instantané nom de tâche existant si un travail existant est utilisé.[ @snapshot_job_name = ] 'snapshot_agent_name' Is the name of an existing Snapshot Agent job name if an existing job is being used. snapshot_agent_name est de type nvarchar (100) avec NULL comme valeur par défaut.snapshot_agent_name is nvarchar(100) with a default value of NULL. Ce paramètre est réservé à un usage interne et ne doit pas être spécifié lors de la création d'une nouvelle publication.This parameter is for internal use and should not be specified when creating a new publication. Si snapshot_agent_name est spécifié, job_login et job_password doivent avoir la valeur null.If snapshot_agent_name is specified, then job_login and job_password must be NULL.

[ @publisher_security_mode = ] publisher_security_modeMode de sécurité utilisé par l’agent lors de la connexion au serveur de publication.[ @publisher_security_mode = ] publisher_security_mode Is the security mode used by the agent when connecting to the Publisher. publisher_security_mode est de type smallint, avec 1 comme valeur par défaut.publisher_security_mode is smallint, with a default of 1. 0 spécifie SQL ServerSQL Server l’authentification et 1 spécifie l’authentification Windows.0 specifies SQL ServerSQL Server Authentication, and 1 specifies Windows Authentication. La valeur 0 doit être spécifiée pour les serveurs de SQL ServerSQL Server publication non-.A value of 0 must be specified for non- SQL ServerSQL Server Publishers. Lorsque c'est possible, utilisez l'authentification Windows.When possible, use Windows authentication.

[ @publisher_login = ] 'publisher_login'Nom de connexion utilisé lors de la connexion au serveur de publication.[ @publisher_login = ] 'publisher_login' Is the login used when connecting to the Publisher. publisher_login est de type sysname, avec NULL comme valeur par défaut.publisher_login is sysname, with a default of NULL. publisher_login doit être spécifié lorsque publisher_security_mode est égal à 0.publisher_login must be specified when publisher_security_mode is 0. Si publisher_login a la valeur null et que publisher_security_mode a la valeur 1, le compte spécifié dans job_login sera utilisé lors de la connexion au serveur de publication.If publisher_login is NULL and publisher_security_mode is 1, then the account specified in job_login will be used when connecting to the Publisher.

[ @publisher_password = ] 'publisher_password'Mot de passe utilisé lors de la connexion au serveur de publication.[ @publisher_password = ] 'publisher_password' Is the password used when connecting to the Publisher. publisher_password est de type sysname, avec NULL comme valeur par défaut.publisher_password is sysname, with a default of NULL.

Important

Ne stockez pas les informations d'authentification dans des fichiers de script.Do not store authentication information in script files. Pour améliorer la sécurité, nous vous recommandons de fournir les noms de connexion et les mots de passe au moment de l'exécution.To help improve security, we recommend that you provide login names and passwords at run time.

[ @job_login = ] 'job_login'Nom de connexion du compte sous lequel l’agent s’exécute.[ @job_login = ] 'job_login' Is the login for the account under which the agent runs. Sur Azure SQL Database Managed Instance, utilisez un compte SQL Server.On Azure SQL Database Managed Instance, use a SQL Server account. job_login est de type nvarchar (257) , avec NULL comme valeur par défaut.job_login is nvarchar(257), with a default of NULL. Ce compte est toujours utilisé pour les connexions de l’agent au serveur de distribution.This account is always used for agent connections to the Distributor. Vous devez fournir ce paramètre lorsque vous créez un nouveau travail d'Agent d'instantané.You must supply this parameter when creating a new Snapshot Agent job.

Notes

Pour les serveurs SQL ServerSQL Server de publication non-, il doit s’agir de la même connexion que celle spécifiée dans 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'Mot de passe du compte Windows sous lequel l’agent s’exécute.[ @job_password = ] 'job_password' Is the password for the Windows account under which the agent runs. job_password est de type sysname, sans valeur par défaut.job_password is sysname, with no default. Vous devez fournir ce paramètre lorsque vous créez un nouveau travail d'Agent d'instantané.You must supply this parameter when creating a new Snapshot Agent job.

Important

Ne stockez pas les informations d'authentification dans des fichiers de script.Do not store authentication information in script files. Pour améliorer la sécurité, nous vous recommandons de fournir les noms de connexion et les mots de passe au moment de l'exécution.To help improve security, we recommend that you provide login names and passwords at run time.

[ @publisher = ] 'publisher'Spécifie un serveur SQL ServerSQL Server de publication non-.[ @publisher = ] 'publisher' Specifies a non- SQL ServerSQL Server Publisher. Publisher est de type sysname, avec NULL comme valeur par défaut.publisher is sysname, with a default of NULL.

Notes

l' éditeur ne doit pas être utilisé lors de la création SQL ServerSQL Server d’un agent d’instantané sur un serveur de publication.publisher should not be used when creating a Snapshot Agent at a SQL ServerSQL Server Publisher.

Valeurs des codes de retourReturn Code Values

0 (succès) ou 1 (échec)0 (success) or 1 (failure)

NotesRemarks

sp_addpublication_snapshot est utilisé dans la réplication d’instantané, la réplication transactionnelle et la réplication de fusion.sp_addpublication_snapshot is used in snapshot replication, transactional replication, and merge replication.

ExempleExample

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

AutorisationsPermissions

Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter sp_addpublication_snapshot.Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_addpublication_snapshot.

Voir aussiSee Also

Create a Publication Create a Publication
Créer et appliquer un instantané 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)
Procédures stockées de réplication (Transact-SQL)Replication Stored Procedures (Transact-SQL)