Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Por que o SQL Server ignora o espaço vazio no final automaticamente?


O SQL Server está seguindo o padrão ANSI/ISO para comparação de strings.

O artigo Como o SQL Server compara strings com espaços à direita explica isso em detalhes.

SQL Server segue a especificação ANSI/ISO SQL-92... sobre como comparar strings com espaços. O padrão ANSI requer preenchimento para as cadeias de caracteres usadas nas comparações para que seus comprimentos correspondam antes de compará-las. O preenchimento afeta diretamente a semântica dos predicados das cláusulas WHERE e HAVING e outras comparações de strings Transact-SQL. Por exemplo, o Transact-SQL considera as strings 'abc' e'abc ' equivalentes para a maioria das operações de comparação.

Além disso, conforme explicado no artigo, se você comparar com LIKE você não obter este comportamento.