Sintomas
Suponha que tem uma consulta que executa algumas operações de cadeia, por exemplo, concatenação, em colunas CHAR ou VARCHAR no Microsoft SQL Server 2014, 2016 e 2017. Tenha em conta o seguinte cenário:
- Pode concatenar colunas com agrupamentos diferentes atribuídos às mesmas.
- Esses agrupamentos são incompatíveis uns com os outros. Por exemplo, tenta concatenar uma coluna que está agrupada como Latin1_General_CI_AI com 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.
Neste cenário, SQL Server pode devolver uma afirmação de revenda que indica "Comparação inválida devido a NENHUM AGRUPAMENTO" e poderá receber algumas mensagens de erro semelhantes às seguintes:
Nota
Localização: typinfo.cpp:Número de Linha
Expressão: falso
SPID: SPID
ID do Processo: ProcessID
Descrição: comparação inválida devido a NENHUM AGRUPAMENTO.Msg 3624, Nível 20, Estado 1, Número de Linha
Uma verificação de asserção do sistema falhou. Verifique o SQL Server registo de erros para obter detalhes. Normalmente, uma falha de asserção é causada por um erro de software ou danos nos dados. Para verificar se existem danos na base de dados, considere executar DBCC CHECKDB. Se tiver concordado em enviar informações de falha de sistema à Microsoft durante a configuração, será enviada uma mini captura para a Microsoft. Pode estar disponível uma atualização da Microsoft no Service Pack mais recente ou numa Correção do Suporte Técnico.Msg 596, Nível 21, Estado 1, Número de Linha
Não é possível continuar a execução porque a sessão está no estado de eliminação.Msg 0, Nível 20, Estado 0, Line LineNumber
Ocorreu um erro grave no comando atual. Os resultados, se existirem, devem ser eliminados.
Causa
Durante a fase de otimização da consulta, SQL Server tenta calcular cardinalidades em resultados intermédios de várias fases da consulta, por exemplo, a concatenação. Uma vez que a resolução de conflitos de agrupamento ocorre no final, o otimizador de consultas pode desconhecer a mesma e tentar efetuar a computação da cardinalidade de concatenação numa entrada com agrupamento em conflito.
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.