Erro ao anexar um banco de dados habilitado para CDC a uma instância do SQL Server 2016 ou SQL Server 2017 no Windows

Este artigo ajuda você a resolve o problema em que não é possível anexar um banco de dados habilitado para CDC a uma instância do SQL Server 2016 ou SQL Server 2017 no Windows.

Versão original do produto: SQL Server 2008 e as versões posteriores
Número de KB original: 3200464

Sintomas

Você desanexa um banco de dados com Change Data Capture habilitado no SQL Server 2014 ou em uma versão anterior e o anexa a um SQL Server 2016 ou SQL Server 2017 na instância do Windows. Nesta situação, você encontra o seguinte erro ao executar o procedimento do sp_cdc_enable_table sistema:

Comando

EXEC sys.sp_cdc_enable_table @source_schema='<schema name>',
@source_name='<source name>', @role_name='<role name>',  
@supports_net_changes=1, @allow_partition_switch=0;

Mensagem de erro

Msg 22832, Nível 16, Estado 1, Procedimento
sp_cdc_enable_table_internal, Linha 639 [Linha de Início do Lote 0]
Não foi possível atualizar os metadados que indicam a tabela [<nome> do esquema]. [<nome> do objeto] está habilitado para a Captura de Dados de Alteração. A falha ocorreu ao executar o comando 'insert into [cdc]. [captured_columns]'. O erro retornado foi 213: 'Nome da coluna ou número de valores fornecidos não corresponde à definição da tabela.'. Use a ação e o erro para determinar a causa da falha e reenviar a solicitação.

Resolução

Para resolve esse problema, execute sp_cdc_vupgrade depois de anexar um banco de dados em uma instância do SQL Server 2016 ou SQL Server 2017 no Windows habilitadaChange Data Capture.

Para obter mais informações, consulte Anexar um banco de dados.