sp_addpublication_snapshot (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Cria o Agente de Instantâneo para a publicação especificada. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.

Importante

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, confira Habilitar conexões criptografadas para o mecanismo de banco de dados (SQL Server Configuration Manager).

Convenções de sintaxe de 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 frequência com que o Agente de Instantâneo é executado. 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 frequência.
64 Quando SQL Server Agent é iniciado.
128 Executar quando o computador estiver ocioso

[ @frequency_interval = ] frequency_interval É o valor a ser aplicado à frequê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 é utilizado.
4 (padrão) A cada frequency_interval dias, com um padrão de diariamente.
8 frequency_interval é uma ou mais das seguintes opções (combinadas com um | (OR bit a bit) operador lógico:

1 = | de domingo

2 = segunda-feira |

4 = terça-feira |

8 = Quarta-feira |

16 = quinta-feira |

32 = sexta-feira |

64 = Sábado
16 No frequency_interval dia do mês.
32 frequency_interval é um dos seguintes:

1 = | de domingo

2 = segunda-feira |

3 = terça-feira |

4 = Quarta-feira |

5 = quinta-feira |

6 = Sexta-feira |

7 = Sábado |

8 = Dia |

9 = | de dia da semana

10 = Dia de fim de semana
64 frequency_interval não é utilizado.
128 frequency_interval não é utilizado.

[ @frequency_subday = ] frequency_subday É a unidade para freq_subday_interval. frequency_subday é int e pode ser um desses 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 em que o Agente de Instantâneo é executado. frequency_relative_interval é int, com um padrão de 1.

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

[ @active_start_date = ] active_start_dateÉ a data em que a Agente de Instantâneo é agendada pela primeira vez, formatada como AAAAMMDD. active_start_date é int, com um padrão de 0.

[ @active_end_date = ] active_end_dateÉ a data em que a Agente de Instantâneo para de ser agendada, formatada como AAAAMMDD. active_end_date é int, com um padrão de 99991231, o que significa 31 de dezembro de 9999.

[ @active_start_time_of_day = ] active_start_time_of_dayÉ a hora do dia em que a Agente de Instantâneo é agendada pela primeira vez, 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 a Agente de Instantâneo para de ser agendada, formatada como HHMMSS. active_end_time_of_day é int, com um padrão de 235959, o que significa 23:59:59, conforme medido em um relógio de 24 horas.

[ @snapshot_job_name = ] 'snapshot_agent_name'É o nome de um nome de trabalho Agente de Instantâneo existente 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, job_login e job_password deverão 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 SQL Server Autenticação e 1 especifica a Autenticação do Windows. Um valor de 0 deve ser especificado para Editores não SQL Server. Quando possível, use a autenticação do Windows.

[ @publisher_login = ] 'publisher_login' É o logon usado ao se conectar ao 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, a conta especificada em job_login será usada ao se conectar ao Publicador.

[ @publisher_password = ] 'publisher_password' É a senha usada ao se conectar ao Publicador. publisher_password é sysname, com um padrão de NULL.

Importante

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 logon da conta na qual o agente é executado. Em Instância Gerenciada de SQL do Azure, use uma conta SQL Server. job_login é nvarchar(257), com um padrão de NULL. Essa conta sempre é usada para conexões de agente com o Distribuidor. Você deve fornecer esse parâmetro ao criar um novo trabalho do Agente de Instantâneo.

Observação

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

[ @job_password = ] 'job_password' É a senha da 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 Agente de Instantâneo.

Importante

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 de NULL.

Observação

O publicador não deve ser usado ao criar um Agente de Instantâneo em um publicador de SQL Server.

Valores do 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'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

Permissões

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

Consulte Também

Criar uma publicação
Criar e aplicar o instantâneo
sp_addpublication (Transact-SQL)
sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot (Transact-SQL)
Procedimentos armazenados de replicação (Transact-SQL)