Ошибка при подключении базы данных с поддержкой CDC к экземпляру SQL Server 2016 или SQL Server 2017 в Windows

Эта статья поможет устранить проблему, из-за которой невозможно подключить базу данных с поддержкой CDC к экземпляру SQL Server 2016 или SQL Server 2017 в Windows.

Исходная версия продукта: SQL Server 2008 и более поздних версиях
Исходный номер базы знаний: 3200464

Симптомы

Отсоедините базу данных с включенным Change Data Capture в SQL Server 2014 или более ранней версии и присоединяете ее к экземпляру SQL Server 2016 или SQL Server 2017 в Windows. В этом случае при выполнении системной процедуры возникает следующая sp_cdc_enable_table ошибка:

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;

Сообщение об ошибке

Msg 22832, Level 16, State 1, Procedure
sp_cdc_enable_table_internal, строка 639 [начальная строка 0]
Не удалось обновить метаданные, указывающие на таблицу [<имя> схемы]. [<имя> объекта] включено для отслеживания измененных данных. Сбой произошел при выполнении команды 'insert into [cdc]. [captured_columns]'. Была возвращена ошибка 213: "Имя столбца или количество предоставленных значений не соответствует определению таблицы". Используйте действие и ошибку, чтобы определить причину сбоя и повторно отправить запрос.

Разрешение

Чтобы устранить эту проблему, выполните команду sp_cdc_vupgrade после присоединения базы данных к экземпляру SQL Server 2016 или SQL Server 2017 в Windows, который включенChange Data Capture.

Дополнительные сведения см. в разделе Подключение базы данных.