sp_addpublication_snapshot (Transact-SQL)

Cria o Snapshot Agent para a publicação especificada. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.

Observação sobre segurançaObservação sobre segurança

Quando um Publicador é configurado com um Distribuidor remoto, os valores fornecidos para todos os parâmetros, inclusive job_login e job_password, são enviados ao Distribuidor como texto sem formatação. Você deve criptografar a conexão entre o Publicador e seu Distribuidor remoto antes de executar esse procedimento armazenado. Para obter mais informações, consulte Criptografando conexões com o SQL Server.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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'
    É o nome da publicação. publication é sysname, sem padrão.

  • [ @frequency_type=] frequency_type
    É a freqüência de execução do Snapshot Agent. frequency_type é int, e pode ser um dos valores a seguir.

    Valor

    Descrição

    1

    Uma vez..

    4 (padrão)

    Diariamente.

    8

    Semanalmente.

    16

    Mensalmente.

    32

    Mensalmente, relativo ao intervalo de freqüência.

    64

    Quando o SQL Server Agent inicia.

    128

    Executar quando o computador estiver ocioso

  • [ @frequency_interval=] frequency_interval
    É o valor a ser aplicado à freqüência definida por frequency_type. frequency_interval é int, e pode ser um dos valores a seguir.

    Valor de frequency_type

    Efeito em frequency_interval

    1

    frequency_interval não é usado.

    4 (padrão)

    Todos os dias de frequency_interval, com um padrão de diariamente.

    8

    frequency_interval é um ou mais dos seguintes (combinado com um operador lógico | (OR bit a bit)):

    1 = Domingo |

    2 = Segunda-feira |

    4 = Terça-feira |

    8 = Quarta-feira |

    16 = Quinta-feira |

    32 = Sexta-feira |

    64 = Sábado

    16

    No dia do mês do frequency_interval.

    32

    frequency_interval é um dos seguintes:

    1 = Domingo |

    2 = Segunda-feira |

    3 = Terça-feira |

    4 = Quarta-feira |

    5 = Quinta-feira |

    6 = Sexta-feira |

    7 = Sábado |

    8 = Dia |

    9 = Dia da semana |

    10 = Dia do fim de semana

    64

    frequency_interval não é usado.

    128

    frequency_interval não é usado.

  • [ @frequency_subday=] frequency_subday
    É a unidade para freq_subday_interval. frequency_subday é int, e pode ser um destes valores.

    Valor

    Descrição

    1

    Uma vez

    2

    Segundo

    4 (padrão)

    Minuto

    8

    Hora

  • [ @frequency_subday_interval=] frequency_subday_interval
    É o intervalo para frequency_subday. frequency_subday_interval é int, com um padrão de 5, o que significa a cada 5 minutos.

  • [ @frequency_relative_interval=] frequency_relative_interval
    É a data de execução do Snapshot Agent. frequency_relative_interval é int, com um padrão de 1.

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    É o fator de recorrência usado pelo frequency_type. frequency_recurrence_factor is int, com um padrão de 0.

  • [ @active_start_date=] active_start_date
    É a data do primeiro agendamento do Snapshot Agent, formatada como YYYYMMDD. active_start_date é int, com um padrão de 0.

  • [ @active_end_date=] active_end_date
    É a data em que o Snapshot Agent deixa de ser agendado, formatada comoYYYYMMDD. active_end_date é int, com um padrão de 99991231, que significa 31 de dezembro de 9999.

  • [ @active_start_time_of_day=] active_start_time_of_day
    É a hora do dia do primeiro agendamento do Snapshot Agent, formatada como HHMMSS. active_start_time_of_day é int, com um padrão de 0.

  • [ @active_end_time_of_day=] active_end_time_of_day
    É a hora do dia em que o Snapshot Agent deixa de ser agendado, formatada como HHMMSS. active_end_time_of_day é int, com um padrão de 235959, que significa 11:59:59 P.M. como medido em um relógio de 24 horas.

  • [ @snapshot_job_name = ] 'snapshot_agent_name'
    É o nome de um trabalho existente de Snapshot Agent se um trabalho existente estiver sendo usado. snapshot_agent_name é nvarchar(100) com um valor padrão de NULL. Esse parâmetro é para uso interno e não deve ser especificado ao criar uma nova publicação. Se snapshot_agent_name for especificado, então job_login e job_password devem ser NULL.

  • [ @publisher_security_mode= ] publisher_security_mode
    É o modo de segurança usado pelo agente ao se conectar ao Publicador. publisher_security_mode é smallint, com um padrão de 1. 0 especifica Autenticação do SQL Server e 1 especifica Autenticação do Windows. Um valor de 0 deve ser especificado para Publicadores não-SQL Server. Quando possível, use a Autenticação do Windows.

  • [ @publisher_login = ] 'publisher_login'
    É o logon usado na conexão com o Publicador. publisher_login é sysname, com um padrão de NULL. publisher_login deve ser especificado quando publisher_security_mode é 0. Se publisher_login for NULL e publisher_security_mode for 1, então a conta do Windows especificada em job_login será usada na conexão com o Publicador.

  • [ @publisher_password= ] 'publisher_password'
    É a senha usada na conexão com o Publicador. publisher_password é sysname, com um padrão NULL.

    Observação sobre segurançaObservação sobre segurança

    Não armazene informações de autenticação em arquivos de script. Para ajudar a melhorar a segurança, recomendamos que você forneça nomes de login e senhas em tempo de execução.

  • [ @job_login= ] 'job_login'
    É o login para a conta do Windows na qual o agente é executado. job_login é nvarchar(257), com um padrão NULL. Esta conta do Windows sempre é usada para conexões de agente com o Distribuidor. Você deve fornecer este parâmetro ao criar um novo trabalho do Snapshot Agent.

    ObservaçãoObservação

    Para Publicadores não-SQL Server, esse deve ser o mesmo logon especificado em sp_adddistpublisher (Transact-SQL).

  • [ @job_password= ] 'job_password'
    É a senha para a conta do Windows na qual o agente é executado. job_password é sysname, sem padrão. Você deve fornecer esse parâmetro ao criar um novo trabalho do Snapshot Agent.

    Observação sobre segurançaObservação sobre segurança

    Não armazene informações de autenticação em arquivos de script. Para ajudar a melhorar a segurança, recomendamos que você forneça nomes de login e senhas em tempo de execução.

  • [ @publisher= ] 'publisher'
    Especifica um Publicador não-SQL Server. publisher é sysname, com um padrão NULL.

    ObservaçãoObservação

    publisher não deveria ser usado ao criar um Snapshot Agent em um Editor SQL Server.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_addpublication_snapshot é usado em replicação de instantâneo, replicação transacional e replicação de mesclagem.

Exemplo

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

Permissões

Somente membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_addpublication_snapshot.