Tenho um problema em não conseguir alterar uma tabela CDC que antes não nos causava problemas.
Executamos instruções alter em nossas tabelas cdc para adicionar uma coluna às tabelas sobre as quais agora estamos começando a enfrentar um erro.
A consulta que estamos tentando executar é
ALTER TABLE cdc.dbo_TABLE_NAME_CT
ADD processed BIT DEFAULT 0 NULL
Que agora retorna o seguinte erro
Msg 2104, Nível 16, Estado 13, Linha 34
Não é possível alterar o erro: 8277, Gravidade: -1, Estado: 0. (Params:). O erro é impresso em modo conciso porque houve erro durante a formatação. Rastreamento, ETW, notificações etc. são ignorados. 'dbo_TABLE_NAME', porque você não tem permissão.
Estou usando o SQL Server 2016 (v13.0.7045.2).
Em um servidor SQL 13.0.7029, conseguimos executar os comandos alter, então parece que algo mudou como parte de um patch.
O problema é semelhante a este aqui https://stackoverflow.com/questions/79075830/error-while-trying-to-alter-cdc-table-on-sql-server
Isso aconteceu em vários ambientes do nada e antes funcionava bem. Não tenho certeza se como parte de um novo patch algo mudou causando isso.
Sei que alterar tabelas cdc não é recomendado, mas isso não nos causou nenhum problema anteriormente.
Gostaria de saber se alguém tem alguma ideia sobre isso, pois não tenho muita certeza de como proceder.
Não tenho certeza se esse é um comportamento intencional ou um bug. Não há menção nos service packs da Microsoft de que eles fizeram algo para desabilitar a capacidade de adicionar uma coluna às tabelas.
Ainda mais se é assim que as coisas vão funcionar daqui para frente, precisamos nos ajustar adequadamente, mas agora não sei por que esse recurso parou de funcionar de repente.
Isso nunca foi suportado.
Da documentação (ênfase adicionada):
As tabelas de alterações são listadas explicitamente e também
is_ms_shipped
definidas como 1.Consuma quaisquer dados de alterações pendentes e, em seguida, desabilite e habilite novamente o CDC na tabela.
Infelizmente, a mensagem de erro está um pouco confusa.
Se você não puder fazer isso da maneira suportada, habilitar o sinalizador de rastreamento global 15006 [1] permitirá que sua
ALTER TABLE
declaração seja bem-sucedida.Se quiser que seu sistema seja suportado, entre em contato com o Suporte da Microsoft e peça que eles autorizem o uso do sinalizador de rastreamento para essa finalidade.
[1] Este sinalizador de rastreamento é mencionado em KB5042207 - Descrição da atualização de segurança para SQL Server 2016 SP3 GDR: 10 de setembro de 2024 — mas não documentado para esta finalidade.