Автор:
Brass Contributor,
Troubleshooting CDC enabling failure - Part 2
В предыдущей статье блога я рассказывал о сбое CDC из-за отключённого пользователя guest в MSDB. Тогда же мой заказчик столкнулся и с другой проблемой:
Msg 22832, Level 16, State 1, Procedure sp_cdc_enable_table_internal, Line 622
Could not update the metadata that indicates table [dbo].[Table_Name] is enabled
for Change Data Capture. The failure occurred when executing the command
'insert into [cdc].[change_tables]'. The error returned was 515:
'Cannot insert the value NULL into column 'has_drop_pending',
table 'LLCProduction.cdc.change_tables'; column does not allow nulls.
INSERT fails.'. Use the action and error to determine the cause of the failure
and resubmit the request.
Они обошли её, включив параметр ANSI_NULL_DEFAULT на уровне базы данных:
ALTER DATABASE DB_Name SET ANSI_NULL_DEFAULT ON;
После этого CDC включился успешно.
Вопрос в том, какова первопричина этой проблемы и как мы можем избежать её в будущем?