78 votes

Chaîne vide SQL Server 2008 et espace

Je suis tombé sur quelque chose d'un peu bizarre ce matin et j'ai pensé qu'il soumet pour commentaire.

Quelqu'un peut m'expliquer pourquoi la requête SQL suivante prints "égaux", lorsqu'il est exécuté sur SQL 2008. La db le niveau de compatibilité est fixé à 100.

if '' = ' '
    print 'equal'
else
    print 'not equal'

Et cela renvoie 0:

select (LEN(' '))

Il semble être auto élagage de l'espace. Je n'ai aucune idée si c'était le cas dans les versions précédentes de SQL Server, et je n'ai plus tout autour de même de la tester.

J'ai couru dans la ce parce que la production de la requête a été de retourner des résultats incorrects. Je ne trouve pas ce comportement documenté n'importe où.

Personne ne dispose d'aucune information à ce sujet?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: