Sintomas
Suponha que você tenha uma consulta que execute algumas operações de cadeia de caracteres, por exemplo, concatenação, em colunas CHAR ou VARCHAR no Microsoft SQL Server 2014, 2016 e 2017. Considere o seguinte cenário:
-
Você concatena as colunas com diferentes agrupamentos atribuídos a elas.
-
Esses agrupamentos são incompatíveis uns com os outros. Por exemplo, você tenta concatenar uma coluna que é agrupada como Latin1_General_CI_AI Latin1_General_BIN.
-
O resultado final da concatenação é atribuído a um agrupamento específico (incluindo "database_default") como uma questão da resolução de conflitos de agrupamento.
Nesse cenário, o SQL Server pode retornar uma declaração de varejo que declara "comparação inválida devido a nenhum agrupamento", e você pode receber algumas mensagens de erro semelhantes às seguintes:
Local: typinfo. cpp:LineNumber Expressão: false SPID: SPID ID do processo: ProcessId Descrição: comparação inválida devido a nenhum agrupamento.
MSG 3624, nível 20, estado 1, line LineNumber Falha na verificação da declaração do sistema. Verifique o log de erros do SQL Server para obter detalhes. Geralmente, uma falha de asserção é causada por um bug de software ou corrupção de dados. Para verificar se há corrupção do banco de dados, considere executar DBCC CHECKDB. Se você concordou em enviar despejos para a Microsoft durante a instalação, um mini despejo será enviado à Microsoft. Uma atualização pode estar disponível na Microsoft no Service Pack mais recente ou em um hotfix do suporte técnico.
MSG 596, nível 21, estado 1, line LineNumber Não é possível continuar a execução porque a sessão está no estado eliminar.
MSG 0, nível 20, estado 0, line LineNumber
Ocorreu um erro grave no comando atual. Os resultados, se houver, devem ser descartados.
Causa
Durante o estágio de otimização de consulta, o SQL Server tenta calcular as cardinalidades nos resultados intermediários de vários estágios da consulta, por exemplo, a concatenação. Como a resolução de conflitos de agrupamento ocorre no final, o otimizador de consultas pode estar inconsciente dele e tenta executar a computação da cardinalidade de concatenação em uma entrada com agrupamento conflitante.
Resolução
Esse problema foi corrigido nas seguintes atualizações cumulativas do 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 incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Atualização cumulativa mais recente do SQL Server 2016
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologiaque a Microsoft usa para descrever atualizações de software.