Sintomas
Suponha que você tenha uma tabela do Microsoft SQL Server com um ou mais índices criados nela. Quando você consulta na tabela, o SQL Server pode executar preenchimento de dados inconsistente para colunas CHAR e BINARY. O comportamento inconsistente para retornar espaços em branco à direita no final das colunas de dados CHAR e BINARY depende das seguintes condições:
- As configurações do ANSI_PADDING quando as colunas são criadas na tabela SQL Server.
- A decisão de executar a verificação de tabela ou a busca de índice nas colunas.
Causa
Em determinados cenários, o SQL Server pode executar uma otimização que permite ignorar muitas operações para uma entrega de dados mais rápida. O problema ocorre porque o SQL Server não reconhece que a otimização não pode ser aplicada para o cenário acima.
Mais informações
Esse comportamento do SQL Server não está em conformidade com o comportamento documentado no seguinte artigo: Usando dados Char e Varchar.
Observação
Se ANSI_PADDING estiver ATIVADO quando uma coluna char NULL for criada, ela se comportará da mesma forma que uma coluna char NOT NULL: os valores são preenchidos à direita para o tamanho da coluna. Se ANSI_PADDING estiver OFF quando uma coluna char NULL for criada, ela se comportará como uma coluna varchar com ANSI_PADDING definido como OFF: os espaços em branco à direita são truncados.
Resolução
Esse problema é corrigido nas seguintes atualizações cumulativas para o SQL Server:
Atualização cumulativa 2 para o SQL Server 2017
Atualização cumulativa 9 para o SQL Server 2016
Atualização cumulativa 38 para o SQL Server 2016 SP1 (Build 50785)
Atualização cumulativa 8 para o SQL Server 2014 SP2
Atualização cumulativa 7 para o SQL Server 2014 SP1
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 2017
Atualização cumulativa mais recente do SQL Server 2016
Atualização cumulativa mais recente do SQL Server 2014
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a"
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.