Sintomas
Assuma que tem uma declaração UPDATE que faz referência a uma função de partição inexistente utilizando a palavra-chave $PARTITION no Microsoft SQL Server 2014, 2016 ou 2017. Por exemplo
ATUALIZAÇÃO TabelaName set ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName)= 1
Nesta situação, o SQL Server não executa uma atualização ou devolve uma mensagem de erro para indicar que o objeto NonExistingPartitionFunction não existe. No entanto, do ponto de vista do utilizador, parece que a declaração DE UPDATE é executada com sucesso, mas na verdade falhou.
Causa
Quando executa um lote, o SQL Server poderá efetuar a resolução de nomes diferidos (DNR). Neste processo, o SQL Server não produz imediatamente um erro quando encontra um objeto inexistente, e espera que o objeto seja criado pelo módulo ou lote antes da execução da declaração que faz referência a esse objeto. Para funções de partição, o SQL Server não lida corretamente com o DNR.
Mais Informações
Para obter mais informações sobre o DNR, consulte a Resolução de Nomes Diferidos.
Resolução
Esta emissão é corrigida nas seguintes atualizações cumulativas para o SQL Server:
Atualização cumulativa 8 para SQL Server 2016 SP1
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Última atualização cumulativa para SQL Server 2016
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Conheça a terminologiaque a Microsoft utiliza para descrever atualizações de software.