Minhas tentativas de publicação estão falhando com este erro
Msg 205, Level 16, State 1, Line 7572 Todas as consultas combinadas usando um operador UNION, INTERSECT ou EXCEPT devem ter um número igual de expressões em suas listas de destino.
Seguindo o conselho da velha escola para imprimir mensagens de status entre a execução do script de implantação, reduzi-o a isso:
O número da linha não combina por causa de peculiaridades do SQL Server, e é por isso que você precisa fazer PRINT
coisas como um pagão (veja o link acima)
Observe como não houve literalmente nenhuma instrução executada. Eu também tive um rastreamento detalhado em execução que confirma que nada foi executado:
Como as instruções de fluxo de controle entre duas PRINT
instruções podem causar um erro?!
Acontece que a
GO
instrução segregou o código bem-sucedido do restante, que de fato contém uma instrução errônea (conforme a mensagem de erro) e, portanto, o erro foi lançado durante a validação da sintaxe .Ao pegar o número da linha da
GO
instrução e adicionar o número da linha mostrado na mensagem de erro (que é realmente o deslocamento no lote), encontrei umaMERGE
instrução incorreta, pois clicar duas vezes na mensagem de erro nos resultados de publicação do SSDT me leva a um ponto aleatório no script de publicação.Portanto, foi causado por lotes de instruções, com validação de sintaxe finalmente sendo executada em um script de implantação (que é excluído da construção com o projeto SQL).