Meu esquema de replicação de mesclagem começou a falhar repentinamente. Ao tentar sincronizar ele reclama que existe um objeto inválido. 'dbo.minhafunção'. A função existia, mas foi removida. Havia apenas uma referência a ela de uma função com valor de tabela e também foi atualizada. Gerei um novo instantâneo, mas ele continua reclamando que o objeto é inválido e não será sincronizado no assinante.
Em algum lugar dentro da replicação, ele ainda está procurando por essa função. Como faço para encontrá-lo e removê-lo - quando não está mais lá.
Eu até examinei os arquivos no instantâneo e não consigo encontrar nenhum lugar que esteja sendo referenciado.
Meu editor é SQL 2008 R2 - todos os meus assinantes são SQL 2008 Express
Pelo que posso dizer... Eu tinha uma função com valor de tabela que costumava exigir outra função com valor de tabela como parte de sua lógica. Esse comportamento foi aprimorado (combinando os dois tbfs em um) e, como nossa replicação incluía alterações de esquema, a melhoria foi enviada aos assinantes e o objeto tbf extra foi removido... que também foi enviado aos assinantes.
Algumas semanas depois, quando um assinante tentou reinicializar, no entanto, ele voltou ao tbf original e não conseguiu encontrar o outro em que confiava (antes de chegar à alteração incremental que o informava, não precisava mais do outro )... e simplesmente morreu.
Consegui recriar o comportamento e pude ver a versão antiga do tbf aparecendo no assinante enquanto tentava reinicializar. Então, a moral da história é... replicar um trabalho em andamento é delicado.