Errore durante il collegamento di un database abilitato per CDC a un'istanza di SQL Server 2016 o SQL Server 2017 in Windows

Questo articolo consente di risolvere il problema per cui non è possibile collegare un database abilitato per CDC a un'istanza di SQL Server 2016 o SQL Server 2017 in Windows.

Versione originale del prodotto: SQL Server 2008 e versioni successive
Numero KB originale: 3200464

Sintomi

Si scollega un database con Change Data Capture abilitato SQL Server 2014 o una versione precedente e lo si collega a un'istanza di SQL Server 2016 o SQL Server 2017 in Windows. In questo caso, si verifica l'errore seguente quando si esegue la procedura di 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;

Messaggio di errore

Msg 22832, Livello 16, Stato 1, Procedura
sp_cdc_enable_table_internal, Riga 639 [Riga di avvio batch 0]
Impossibile aggiornare i metadati che indicano la tabella [<nome> schema]. [<nome> oggetto] è abilitato per Change Data Capture. L'errore si è verificato durante l'esecuzione del comando 'insert into [cdc]. [captured_columns]'. L'errore restituito è 213: 'Nome colonna o numero di valori forniti non corrisponde alla definizione della tabella'. Usare l'azione e l'errore per determinare la causa dell'errore e inviare di nuovo la richiesta.

Risoluzione

Per risolvere questo problema, eseguire sp_cdc_vupgrade dopo il collegamento di un database in un'istanza di SQL Server 2016 o SQL Server 2017 in Windows Change Data Capture abilitata.

Per altre informazioni, vedere Collegare un database.