KB4046745 - CORREÇÃO: a instrução UPDATE falha automaticamente quando referencia uma função de partição inexistente na cláusula WHERE no SQL Server 2014, 2016 ou 2017

Aplica-se A
SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise Core SQL Server 2017 Enterprise SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Sintomas

Suponha que tem uma instrução UPDATE que referencia uma função de partição inexistente ao utilizar a palavra-chave $PARTITION no Microsoft SQL Server 2014, 2016 ou 2017. Por exemplo:

Nota

UPDATE TableName SET ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1

Nesta situação, SQL Server não efetua 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 instrução UPDATE foi executada com êxito, mas na verdade falhou.

Causa

Quando executa um lote, SQL Server pode executar a resolução de nomes diferidos (DNR). Neste processo, 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 instrução que referencia esse objeto. Para funções de partição, SQL Server não processa o DNR corretamente.

Mais Informações

Para obter mais informações sobre o DNR, veja Resolução de Nomes Diferidos.

Resolução

Este problema foi corrigido nas seguintes atualizações cumulativas para SQL Server:

Atualização cumulativa 8 para SQL Server 2016 SP1

Atualização Cumulativa 4 para SQL Server 2017

Atualização Cumulativa 9 para SQL Server 2014 SP2

Acerca das atualizações cumulativas para SQL Server:

Cada nova atualização cumulativa para SQL Server contém todas as correções e todas as correções de segurança incluídas na atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:

Atualização cumulativa mais recente do SQL Server 2016

Atualização cumulativa mais recente do SQL Server 2017

Atualização cumulativa mais recente para SQL Server 2014

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.