sp_addpublication_snapshot (Transact-SQL)

Mis à jour : 12 décembre 2006

Crée l'Agent de capture instantanée pour la publication spécifiée. Cette procédure stockée est exécutée au niveau du serveur de publication dans la base de données de publication.

ms174958.security(fr-fr,SQL.90).gifRemarque relative à la sécurité :
 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 au serveur de distribution en texte brut. 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. Pour plus d'informations, consultez Chiffrement des connexions à SQL Server.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

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

Arguments

  • [ @publication=] 'publication'
    Nom de la publication. publication est de type sysname, sans valeur par défaut.
  • [ @frequency_type=] frequency_type
    Fréquence d'exécution de l'Agent de capture instantanée. frequency_type est de type int et peut prendre l'une des valeurs suivantes.

    Valeur Description

    1

    Une seule fois.

    4 (par défaut)

    Tous les jours.

    8

    Toutes les semaines.

    16

    Tous les mois.

    32

    Tous les mois, en fonction de l'intervalle de fréquence.

    64

    Au démarrage de l'Agent SQL Server.

    128

    Exécution pendant une période d'inactivité de l'ordinateur.

  • [ @frequency_interval=] frequency_interval
    Valeur à appliquer à la fréquence définie par frequency_type. frequency_interval est de type int et peut avoir une des valeurs suivantes.

    Valeur de frequency_type Effet sur frequency_interval

    1

    frequency_interval n'est pas utilisé.

    4 (par défaut)

    Chaque jour de frequency_interval. La valeur par défaut est quotidienne.

    8

    frequency_interval prend une ou plusieurs des valeurs suivantes (combinées avec un opérateur logique | (OR au niveau du bit) (Transact-SQL)) :

    1 = Dimanche

    2 = Lundi

    4 = Mardi

    8 = Mercredi

    16 = Jeudi

    32 = Vendredi

    64 = Samedi

    16

    Le frequency_interval jour du mois.

    32

    frequency_interval prend une des valeurs suivantes :

    1 = Dimanche

    2 = Lundi

    3 = Mardi

    4 = Mercredi

    5 = Jeudi

    6 = Vendredi

    7 = Samedi

    8 = Jour

    9 = Jour ouvrable

    10 = Week-end

    64

    frequency_interval n'est pas utilisé.

    128

    frequency_interval n'est pas utilisé.

  • [ @frequency_subday=] frequency_subday
    Unité de freq_subday_interval. frequency_subday est de type int et peut prendre l'une des valeurs suivantes.

    Valeur Description

    1

    Une fois

    2

    Seconde

    4 (par défaut)

    Minute

    8

    Heure

  • [ @frequency_subday_interval=] frequency_subday_interval
    Intervalle de frequency_subday. frequency_subday_interval est de type int, avec 5 comme valeur par défaut (= toutes les 5 minutes).
  • [ @frequency_relative_interval=] frequency_relative_interval
    Date d'exécution de l'Agent de capture instantanée. frequency_relative_interval est de type int, avec 1 comme valeur par défaut.
  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Facteur de récurrence utilisé par frequency_type. frequency_recurrence_factor est de type int, avec 0 comme valeur par défaut.
  • [ @active_start_date = ] active_start_date
    Date à laquelle l'Agent de capture instantanée est planifié pour la première fois, représentée au format AAAAMMJJ. active_start_date est de type int, avec 0 comme valeur par défaut.
  • [ @active_end_date = ] active_end_date
    Date à laquelle l'Agent de capture instantanée cesse d'être planifié, représentée au format AAAAMMJJ. active_end_date est de type int, avec 99991231 comme valeur par défaut (ce qui correspond au 31 décembre 9999).
  • [ @active_start_time_of_day=] active_start_time_of_day
    Heure de la journée à laquelle l'Agent de capture instantanée est planifié pour la première fois, représentée au format HHMMSS. active_start_time_of_day est de type int, avec 0 comme valeur par défaut.
  • [ @active_end_time_of_day=] active_end_time_of_day
    Heure de la journée à laquelle l'Agent de capture instantanée cesse d'être planifié, représentée au format HHMMSS. active_end_time_of_day est de type int, avec 235959 comme valeur par défaut (ce qui correspond à 23:59:59 avec un affichage horaire au format 24 heures).
  • [ @snapshot_job_name = ] 'snapshot_agent_name'
    Nom d'un travail de l'Agent de capture instantanée en cas d'utilisation d'un travail existant. snapshot_agent_name est de type nvarchar(100), avec NULL comme valeur par défaut. 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. Si snapshot_agent_name est spécifié, la valeur de job_login et de job_password doit être NULL.
  • [ @publisher_security_mode= ] publisher_security_mode
    Mode de sécurité utilisé par l'Agent pour se connecter au serveur de publication. publisher_security_mode est de type smallint, avec 1 comme valeur par défaut. 0 désigne l'authentification SQL Server et 1 désigne l'authentification Windows. La valeur 0 doit être spécifiée pour les serveurs de publication non SQL Server.
  • [ @publisher_login= ] 'publisher_login'
    Nom de connexion utilisé pour se connecter au serveur de publication. publisher_login est de type sysname, avec NULL comme valeur par défaut. L'argument publisher_login doit être spécifié lorsque publisher_security_mode a la valeur 0. Si publisher_login prend la valeur NULL et que publisher_security_modeest défini sur 1, le compte Windows spécifié dans job_login est utilisé lors de la connexion au serveur de publication.
  • [ @publisher_password= ] 'publisher_password'
    Mot de passe utilisé pour se connecter au serveur de publication. publisher_password est de type sysname, avec NULL comme valeur par défaut.

    ms174958.security(fr-fr,SQL.90).gifRemarque relative à la sécurité :
    Ne stockez pas d'informations d'authentification dans des fichiers de script. Les noms de connexion et les mots de passe doivent être fournis au moment de l'exécution.
  • [ @job_login= ] 'job_login'
    Nom de connexion du compte Windows sous lequel l'Agent s'exécute. job_login est de type nvarchar(257), avec NULL comme valeur par défaut. Ce compte Windows est toujours utilisé pour les connexions de l'Agent au serveur de publication. Vous devez spécifier ce paramètre lors de la création d'un nouveau travail de l'Agent de capture instantanée.
  • [ @job_password= ] 'job_password'
    Mot de passe du compte Windows sous lequel l'Agent s'exécute. job_password est de type sysname, sans valeur par défaut. Vous devez spécifier ce paramètre lors de la création d'un nouveau travail de l'Agent de capture instantanée.

    ms174958.security(fr-fr,SQL.90).gifRemarque relative à la sécurité :
    Ne stockez pas d'informations d'authentification dans des fichiers de script. Les noms de connexion et les mots de passe doivent être fournis au moment de l'exécution.
  • [ @publisher = ] 'publisher'
    Spécifie un serveur de publication non-SQL Server. publisher est de type sysname, avec NULL comme valeur par défaut.

    ms174958.note(fr-fr,SQL.90).gifRemarque :
    publisher ne doit pas être utilisé lors de la création d'un Agent de capture instantanée sur un serveur de publication SQL Server.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_addpublication_snapshot est utilisée dans la réplication transactionnelle, de capture instantanée et de fusion.

Autorisations

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.

Exemple

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

Voir aussi

Référence

sp_addpublication (Transact-SQL)
sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot (Transact-SQL)
Procédures stockées de réplication (Transact-SQL)

Autres ressources

How to: Create a Publication (Replication Transact-SQL Programming)
Création et application de la capture instantanée

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

12 décembre 2006

Contenu mis à jour :
  • Mise à jour des informations concernant les paramètres @frequency_type et @frequency_interval.