sp_marksubscriptionvalidation (Transact-SQL)
Aplica-se a:SQL Server
Marca a transação aberta atual para ser uma transação de validação do nível de assinatura para o assinante especificado. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_marksubscriptionvalidation [ @publication = ] 'publication'
, [ @subscriber = ] 'subscriber'
, [ @destination_db = ] 'destination_db'
[ , [ @publisher = ] 'publisher' ]
Argumentos
[ @publication = ] 'publication'
É o nome da publicação. publication é sysname, sem padrão.
[ @subscriber = ] 'subscriber'
É o nome do Assinante. subscriber é sysname, sem padrão.
[ @destination_db = ] 'destination_db'
É o nome do banco de dados de destino. destination_db é sysname, sem padrão.
[ @publisher = ] 'publisher'
Especifica um Publicador não Microsoft SQL Server. publisher é sysname, com um padrão de NULL.
Observação
publisher não deve ser usado para uma publicação que pertença a um publicador de SQL Server.
Valores do código de retorno
0 (êxito) ou 1 (falha)
Comentários
sp_marksubscriptionvalidation é usado na replicação transacional.
sp_marksubscriptionvalidation não dá suporte a Assinantes não SQL Server.
Para editores não SQL Server, você não pode executar sp_marksubscriptionvalidation de dentro de uma transação explícita. Isso porque transações explícitas não têm suporte em conexão de servidor vinculada usada para acessar o Editor.
sp_marksubscriptionvalidation deve ser usado junto com sp_article_validation (Transact-SQL), especificando um valor de 1 para subscription_level e pode ser usado com outras chamadas para sp_marksubscriptionvalidation para marcar a transação aberta atual para outros assinantes.
Permissões
Somente membros da função de servidor fixa sysadmin ou db_owner função de banco de dados fixa podem executar sp_marksubscriptionvalidation.
Exemplo
A consulta seguinte pode ser aplicada ao banco de dados de publicação para publicar comandos de validação de nível de assinatura. Esses comandos são retirados pelos Distribution Agents de Assinantes especificados. Observe que a primeira transação valida o artigo 'art1', enquanto a segunda transação valida 'art2'. Observe também que as chamadas para sp_marksubscriptionvalidation e sp_article_validation (Transact-SQL) foram encapsuladas em uma transação. Recomendamos apenas uma chamada para sp_article_validation (Transact-SQL) por transação. Isso ocorre porque sp_article_validation (Transact-SQL) mantém um bloqueio de tabela compartilhado na tabela de origem durante a transação. A transação deve ser curta para maximizar simultaneidade.
begin tran
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub', @destination_db = 'SubDB'
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub2', @destination_db = 'SubDB'
exec sp_article_validation @publication = 'pub1', @article = 'art1',
@rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
@subscription_level = 1
commit tran
begin tran
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub', @destination_db = 'SubDB'
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub2', @destination_db = 'SubDB'
exec sp_article_validation @publication = 'pub1', @article = 'art2',
@rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
@subscription_level = 1
commit tran
Consulte Também
Procedimentos armazenados do sistema (Transact-SQL)
Validar os dados replicados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de