sp_addpublication_snapshot (Transact-SQL)

Actualizado: 12 de diciembre de 2006

Crea el Agente de instantáneas en la publicación especificada. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.

ms174958.security(es-es,SQL.90).gifNota de seguridad:
 Al configurar un publicador con un distribuidor remoto, los valores suministrados para todos los parámetros, incluidos job_login y job_password, se envían al distribuidor como texto sin formato. Debe cifrar la conexión entre el publicador y su distribuidor remoto antes de ejecutar este procedimiento almacenado. Para obtener más información, vea Cifrar conexiones a SQL Server.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [ @publication=] 'publication'
    Es el nombre de la publicación. publication es de tipo sysname y no tiene ningún valor predeterminado.
  • [ @frequency_type=] frequency_type
    Es la frecuencia con la que se ejecuta el Agente de instantáneas. frequency_type es de tipo int y puede tener uno de los siguientes valores.

    Valor Descripción

    1

    Una vez

    4 (predeterminado)

    Diariamente

    8

    Semanalmente

    16

    Mensualmente

    32

    Mensualmente, según el intervalo de frecuencia

    64

    Cuando se inicia el Agente SQL Server

    128

    Se ejecuta cuando el equipo está inactivo.

  • [ @frequency_interval=] frequency_interval
    Es el valor que se aplica a la frecuencia establecida en frequency_type. frequency_interval es de tipo int y puede tener unos de los valores siguientes.

    Valor de frequency_type Efecto en frequency_interval

    1

    frequency_interval no se utiliza.

    4 (predeterminado)

    Cada frequency_interval días, con un valor predeterminado de "diariamente".

    8

    frequency_interval es uno o más de los siguientes (combinados con un operador lógico | (OR bit a bit) (Transact-SQL)):

    1 = Domingo

    2 = Lunes

    4 = Martes

    8 = Miércoles

    16 = Jueves

    32 = Viernes

    64 = Sábado

    16

    En el día frequency_interval del mes.

    32

    frequency_interval es uno de los siguientes:

    1 = Domingo

    2 = Lunes

    3 = Martes

    4 = Miércoles

    5 = Jueves

    6 = Viernes

    7 = Sábado

    8 = Día

    9 = Día de la semana

    10 = Día del fin de semana

    64

    frequency_interval no se utiliza.

    128

    frequency_interval no se utiliza.

  • [ @frequency_subday=] frequency_subday
    Es la unidad para freq_subday_interval. frequency_subday es de tipo int y puede tener uno de estos valores.

    Valor Descripción

    1

    Una vez

    2

    Segundo

    4 (predeterminado)

    Minuto

    8

    Hora

  • [ @frequency_subday_interval=] frequency_subday_interval
    Es el intervalo de frequency_subday. frequency_subday_interval es de tipo int y su valor predeterminado es 5, lo que equivale a cada 5 minutos.
  • [ @frequency_relative_interval=] frequency_relative_interval
    Es la fecha en la que se ejecuta el Agente de instantáneas. frequency_relative_interval es de tipo int y su valor predeterminado es 1.
  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Es el factor de periodicidad utilizado por frequency_type. frequency_recurrence_factor es de tipo int y su valor predeterminado es 0.
  • [ @active_start_date=] active_start_date
    Es la fecha en la que comienza la programación del Agente de instantáneas, en formato YYYYMMDD. active_start_date es de tipo int y su valor predeterminado es 0.
  • [ @active_end_date=] active_end_date
    Es la fecha en la que se detiene la programación del Agente de instantáneas, en formato YYYYMMDD. active_end_date es de tipo int y su valor predeterminado es 99991231, que significa 31 de diciembre de 9999.
  • [ @active_start_time_of_day=] active_start_time_of_day
    Es la hora del día de la primera programación del Agente de instantáneas, con el formato HHMMSS. active_start_time_of_day es de tipo int y su valor predeterminado es 0.
  • [ @active_end_time_of_day=] active_end_time_of_day
    Es la hora del día a la que deja de estar programado el Agente de instantáneas, con formato HHMMSS. active_end_time_of_day es de tipo int y su valor predeterminado es 235959, es decir, 11:59:59 p. m. en un reloj de 24 horas.
  • [ @snapshot_job_name = ] 'snapshot_agent_name'
    Es el nombre de un trabajo del Agente de instantáneas existente si se se está utilizando un trabajo existente. snapshot_agent_name es de tipo nvarchar(100) y su valor predeterminado es NULL. Este parámetro es sólo para uso interno y no se puede especificar al crear una publicación nueva. Si se especifica snapshot_agent_name, job_login y job_password deben ser NULL.
  • [ @publisher_security_mode= ] publisher_security_mode
    Es el modo de seguridad utilizado por el agente al conectarse al publicador. publisher_security_mode es de tipo smallint y su valor predeterminado es 1. 0 especifica la autenticación de SQL Server y 1 especifica la autenticación de Windows. El valor 0 se debe especificar para los publicadores que no son de SQL Server.
  • [ @publisher_login= ] 'publisher_login'
    Es el inicio de sesión utilizado al conectarse al publicador. publisher_login es de tipo sysname y su valor predeterminado es NULL. publisher_login se debe especificar si publisher_security_mode es 0. Si publisher_login es NULL y publisher_security_mode es 1, se utilizará la cuenta de Windows especificada en job_login al conectarse al publicador.
  • [ @publisher_password= ] 'publisher_password'
    Es la contraseña que se utiliza al conectarse al publicador. publisher_password es de tipo sysname y su valor predeterminado es NULL.

    ms174958.security(es-es,SQL.90).gifNota de seguridad:
    No almacene la información de autenticación en archivos de secuencia de comandos. Los nombres de inicio de sesión y las contraseñas deben proporcionarse en tiempo de ejecución.
  • [ @job_login= ] 'job_login'
    Es el inicio de sesión de la cuenta de Windows en la que se ejecuta el agente. job_login es de tipo nvarchar(257) y su valor predeterminado es NULL. Esta cuenta de Windows se utiliza siempre para las conexiones del agente al distribuidor. Debe proporcionar este parámetro al crear un trabajo nuevo del Agente de instantáneas.
  • [ @job_password= ] 'job_password'
    Es la contraseña de la cuenta de Windows con la que se ejecuta el agente. job_password es de tipo sysname y no tiene ningún valor predeterminado. Debe proporcionar este parámetro al crear un trabajo nuevo del Agente de instantáneas.

    ms174958.security(es-es,SQL.90).gifNota de seguridad:
    No almacene la información de autenticación en archivos de secuencia de comandos. Los nombres de inicio de sesión y las contraseñas deben proporcionarse en tiempo de ejecución.
  • [ @publisher= ] 'publisher'
    Especifica un publicador que no es de SQL Server. publisher es de tipo sysname y su valor predeterminado es NULL.

    [!NOTA] No se debe utilizar publisher al crear un Agente de instantáneas en un publicador de SQL Server.

Notas

sp_addpublication_snapshot se utiliza en la réplica de instantáneas, transaccional y de mezcla.

Permisos

Sólo los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden ejecutar sp_addpublication_snapshot.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplo

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

Vea también

Referencia

sp_addpublication (Transact-SQL)
sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot (Transact-SQL)
Procedimientos almacenados de réplica (Transact-SQL)

Otros recursos

How to: Create a Publication (Replication Transact-SQL Programming)
Crear y aplicar una instantánea

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

12 de diciembre de 2006

Contenido actualizado:
  • Se actualizó la información acerca de los parámetros @frequency_type y @frequency_interval.