KB4048967 - CORREÇÃO: Não é possível ativar ou desativar a captura de dados de alteração para uma base de dados depois de anexá-la no SQL Server 2014, 2016 ou 2017

Aplica-se A
SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Sintomas

Assuma que anexa uma base de dados ativada para captura de dados de alteração no Microsoft SQL Server 2014, 2016 ou 2017. Se houver transações a serem refeitas durante a inicialização do banco de dados, a captura de dados de alteração pode ser executada em um estado inconsistente, ou seja, a captura de dados de alteração está no estado desativado, mas os objetos de captura de dados de alteração ainda existem. Além disso, poderá deparar-se com as seguintes situações:

  • Quando tenta desactivar a captura de dados de alteração para esta base de dados utilizando o procedimento armazenado sp_cdc_disable_db , recebe a seguinte mensagem de erro:

    Nota

    O banco de dados DatabaseName não está habilitado para alterar dados Captura. Certifique-se de que o contexto de base de dados correto está definido e repita a operação. Para elaborar relatórios sobre os bancos de dados habilitados para o Change Data Captura, consulte a coluna is_cdc_enabled na exibição do catálogo sys.databases.

  • Quando tenta activar a captura de dados de alteração para esta base de dados utilizando o procedimento armazenado sp_cdc_enable_db , recebe a seguinte mensagem de erro:

    Nota

    Msg 22906, Nível 16, Estado 1, Procedimento sp_cdc_enable_db_internal, Número de Linha

    O banco de dados DatabaseName não pode ser habilitado para alterar dados Captura porque um usuário de banco de dados chamado UserName ou um esquema chamado SchemaName já existe no banco de dados atual. Estes objetos são requeridos exclusivamente pela Change Data Captura. Solte ou renomeie o usuário ou esquema e tente novamente a operação.

Resolução

Este problema foi corrigido nas seguintes atualizações cumulativas para SQL Server:

Atualização cumulativa 8 para SQL Server 2016 SP1

Atualização cumulativa 4 para SQL Server 2017

Atualização cumulativa 9 para SQL Server 2014 SP2

Acerca das atualizações cumulativas para SQL Server:

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:

Atualização cumulativa mais recente para o SQL Server 2016

Atualização cumulativa mais recente para o SQL Server 2017

Atualização cumulativa mais recente para o SQL Server 2014

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.