Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
Cria o Snapshot Agent para a publicação especificada. Este procedimento armazenado é executado no Publisher no banco de dados de publicação.
Important
Ao configurar um Publisher com um Distribuidor remoto, os valores fornecidos para todos os parâmetros, incluindo @job_login e @job_password, são enviados ao Distribuidor em texto simples. Deve encriptar a ligação entre o Publisher e o seu Distribuidor remoto antes de executar este procedimento armazenado. Para obter mais informações, consulte Configurar o Mecanismo de Banco de Dados do SQL Server para criptografar conexões.
Transact-SQL convenções de sintaxe
Syntax
sys.sp_addpublication_snapshot
[ @publication = ] N'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 = ] N'snapshot_job_name' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ , [ @publisher = ] N'publisher' ]
[ , [ @distributor_security_mode = ] distributor_security_mode ]
[ , [ @distributor_login = ] N'distributor_login' ]
[ , [ @distributor_password = ] N'distributor_password' ]
[ , [ @job_security_mode = ] job_security_mode ]
[ ; ]
Arguments
[ @publication = ] N'publicação'
O nome da publicação. @publication é sysname, sem padrão.
[ @frequency_type = ] frequency_type
A frequência com que o Snapshot Agent é executado. @frequency_type é int, e pode ser um dos seguintes valores.
| Value | Description |
|---|---|
1 |
Uma vez |
4 (padrão) |
Diariamente |
8 |
Semanalmente |
16 |
Monthly |
32 |
Mensalmente, em relação ao intervalo de frequência |
64 |
Quando o SQL Server Agent inicia |
128 |
Correr quando o computador estiver parado |
[ @frequency_interval = ] frequency_interval
O valor a aplicar à frequência definida por @frequency_type. @frequency_interval é int, e pode ser um dos seguintes valores.
| Valor da frequency_type | Efeito na frequency_interval |
|---|---|
1 |
@frequency_interval está por usar. |
4 (padrão) |
A cada @frequency_interval dias, com um padrão diário. |
8 |
@frequency_interval é um ou mais dos seguintes (combinados com um | (Bitwise OR) operador lógico):1 = 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 valores:1 = Domingo |2 = Segunda-feira |3 = Terça-feira |4 = Quarta-feira |5 = quinta-feira |6 = sexta-feira |7 = Sábado |8 = Dia |9 = Dias úteis |10 = Dia de fim de semana |
64 |
@frequency_interval está por usar. |
128 |
@frequency_interval está por usar. |
[ @frequency_subday = ] frequency_subday
A unidade para freq_subday_interval. @frequency_subday é int, e pode ser um desses valores.
| Value | Description |
|---|---|
1 |
Uma vez |
2 |
Second |
4 (padrão) |
Minuto |
8 |
Hora |
[ @frequency_subday_interval = ] frequency_subday_interval
O intervalo para @frequency_subday, em minutos.
@frequency_subday_interval é int, com um padrão de 5.
[ @frequency_relative_interval = ] frequency_relative_interval
A data em que o Snapshot Agent é executado.
@frequency_relative_interval é int, com um padrão de 1.
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
O fator de recorrência utilizado por @frequency_type.
@frequency_recurrence_factor é int, com um padrão de 0.
[ @active_start_date = ] active_start_date
A data em que o Snapshot Agent é agendado pela primeira vez, 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 como yyyyMMdd.
@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 o Snapshot Agent é inicialmente agendado, formatado 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, o que significa 23:59:59 conforme medido num relógio de 24 horas.
[ @snapshot_job_name = ] N'snapshot_job_name'
O nome de um emprego Snapshot Agent existente, caso um trabalho já existente esteja a ser utilizado.
@snapshot_job_name é nvarchar(100), com um padrão de NULL. Este 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
Nota
Microsoft Entra ID era anteriormente conhecido como Azure Ative Directory (Azure AD).
O modo de segurança usado pelo agente ao ligar-se ao Publisher.
@publisher_security_mode é int, com um padrão de 1. Um valor de 0 deve ser especificado para editores que não sejam SQL Server. Quando possível, use a autenticação do Windows.. Os seguintes valores definem o modo de segurança:
-
0especifica autenticação SQL Server. -
1especifica autenticação do Windows. -
2especifica autenticação por palavra-passe Microsoft Entra, começando com SQL Server 2022 (16.x) 6. -
3especifica autenticação integrada Microsoft Entra, começando com SQL Server 2022 (16.x) 6. -
4especifica autenticação de token Microsoft Entra, a partir do SQL Server 2022 (16.x) 6.
[ @publisher_login = ] N'publisher_login'
O login usado ao ligar-se ao Publisher.
@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 especificada em @job_login é usada ao ligar ao Publisher.
[ @publisher_password = ] N'publisher_password'
A palavra-passe usada ao ligar-se ao Publisher.
@publisher_password é sysname, com um padrão de NULL.
Important
Não guarde a informação de autenticação em ficheiros de script. Para ajudar a melhorar a segurança, recomendamos que forneça nomes de login e palavras-passe durante a execução.
[ @job_login = ] N'job_login'
O login da conta com a qual o agente opera. No Azure SQL Managed Instance, use uma conta SQL Server.
@job_login é nvarchar(257), com um padrão de NULL. Esta conta é sempre usada para ligações de agentes ao Distribuidor. Deve fornecer este parâmetro ao criar um novo trabalho do Snapshot Agent.
Para editores não SQL Server, este deve ser o mesmo login especificado em sp_adddistpublisher.
[ @job_password = ] N'job_password'
A palavra-passe da conta Windows com a qual o agente corre. @job_password é sysname, sem padrão. Deve fornecer este parâmetro ao criar um novo trabalho do Snapshot Agent.
Important
Não guarde a informação de autenticação em ficheiros de script. Para ajudar a melhorar a segurança, recomendamos que forneça nomes de login e palavras-passe durante a execução.
@publisher [ = ] N'editor'
Especifica um Editor de Server que não seja SQL.
@publisher é sysname, com um padrão de NULL.
@publisher não deve ser usado ao criar um Snapshot Agent num SQL Server Publisher.
[ @distributor_security_mode = ] distributor_security_mode
Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
[ @distributor_login = ] N'distributor_login'
Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
[ @distributor_password = ] N'distributor_password'
Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
[ @job_security_mode = ] job_security_mode
Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Remarks
sp_addpublication_snapshot é usado na replicação de snapshot, replicação transacional e replicação de mesclagem.
Examples
-- 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
Permissions
Apenas os membros do papel fixo de servidor administrador do sistema ou db_owner papel fixo de base de dados podem executar sp_addpublication_snapshot.