Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Pourquoi le serveur SQL ignore-t-il automatiquement l'espace vide à la fin ?

SQL Server suit la norme ANSI/ISO pour la comparaison de chaînes.

L'article Comment SQL Server compare les chaînes avec les espaces de fin explique cela en détail.

SQL Server suit la spécification ANSI/ISO SQL-92... sur la façon de comparer les chaînes avec des espaces. La norme ANSI requiert un remplissage pour les chaînes de caractères utilisées dans les comparaisons afin que leurs longueurs correspondent avant de les comparer. Le remplissage affecte directement la sémantique des prédicats de clause WHERE et HAVING et d'autres comparaisons de chaînes Transact-SQL. Par exemple, Transact-SQL considère que les chaînes 'abc' et 'abc ' sont équivalentes pour la plupart des opérations de comparaison.

De plus, comme expliqué dans l'article, si vous comparez avec LIKE vous ne faites pas obtenir ce comportement.