Erreur lors de l’attachement d’une base de données avec capture de données modifiées à une instance de SQL Server 2016 ou SQL Server 2017 sur Windows
Cet article vous aide à résoudre le problème où vous ne pouvez pas attacher une base de données avec capture de données modifiées à une instance de SQL Server 2016 ou SQL Server 2017 sur Windows.
Version du produit d’origine : SQL Server 2008 et les versions ultérieures
Numéro de 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 instance SQL Server 2016 ou SQL Server 2017 sur Windows. Dans ce cas, vous rencontrez l’erreur suivante lorsque vous exécutez la sp_cdc_enable_table
procédure système :
Commande
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 : « Nom de colonne ou nombre de valeurs fournies ne correspond pas à la définition de la table. » Utilisez les informations d'action et d'erreur pour déterminer la cause du problème et soumettre à nouveau la requête.
Résolution
Pour résoudre ce problème, exécutez sp_cdc_vupgrade
après avoir attaché une base de données sur une instance de SQL Server 2016 ou SQL Server 2017 sur Windows activée Change Data Capture
.
Pour plus d’informations, consultez Attacher une base de données.