KB4046745 - CORREÇÃO: A instrução UPDATE falha silenciosamente quando você faz referência a uma função de partição inexistente na cláusula WHERE em 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 você tenha uma instrução UPDATE que faça referência a uma função de partição inexistente usando o palavra-chave $PARTITION no Microsoft SQL Server 2014, 2016 ou 2017. Por exemplo,

Observação

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

Nessa situação, o SQL Server não executa uma atualização ou retorna uma mensagem de erro para indicar que o objeto NonExistingPartitionFunction não existe. No entanto, da perspectiva do usuário, parece que a instrução UPDATE foi executada com êxito, mas na verdade falhou.

Causa

Quando você executa um lote, o SQL Server pode executar a DNR (resolução de nomes adiados). Nesse 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 instrução que faz referência a esse objeto. Para funções de partição, o SQL Server não manipula o DNR corretamente.

Mais informações

Para obter mais informações sobre DNR, consulte Resolução de nomes adiados.

Resolução

Esse problema é corrigido nas seguintes atualizações cumulativas para o SQL Server:

Atualização cumulativa 8 para o SQL Server 2016 SP1

Atualização cumulativa 4 para o SQL Server 2017

Atualização cumulativa 9 para o SQL Server 2014 SP2

Sobre atualizações cumulativas para o SQL Server:

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para o 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 do SQL Server 2014

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Referências

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