Erreur lors de l’attachement d’une base de données compatible cdc à un instance de SQL Server 2016 ou SQL Server 2017 sur Windows

Cet article vous aide à résoudre le problème dans lequel vous ne pouvez pas attacher une base de données compatible cdc à un instance de SQL Server 2016 ou SQL Server 2017 sur Windows.

Version du produit d’origine : SQL Server 2008 et versions ultérieures
Numéro de la base de connaissances d’origine : 3200464

Symptômes

Vous détachez une base de données avec Change Data Capture activé sur SQL Server 2014 ou une version antérieure, et vous l’attachez à une SQL Server 2016 ou SQL Server 2017 sur Windows instance. Dans ce cas, vous rencontrez l’erreur suivante lorsque vous exécutez la sp_cdc_enable_table procédure système :

Command

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;

Message d’erreur

Msg 22832, Niveau 16, État 1, Procédure
sp_cdc_enable_table_internal, ligne 639 [Ligne de début du lot 0]
Impossible de mettre à jour les métadonnées qui indiquent la table [<nom> du schéma]. [<nom de> l’objet] est activé pour la capture de données modifiées. L’échec s’est produit lors de l’exécution de la commande 'insert into [cdc]. [captured_columns]'. L’erreur retournée était 213 : « Le nom de la colonne ou le nombre de valeurs fournies ne correspond pas à la définition de table . ». Utilisez l’action et l’erreur pour déterminer la cause de l’échec et soumettre à nouveau la demande.

Résolution

Pour résoudre ce problème, exécutez sp_cdc_vupgrade après avoir attaché une base de données sur un instance de SQL Server 2016 ou SQL Server 2017 sur Windows activéChange Data Capture.

Pour plus d’informations, consultez Attacher une base de données.