2012-05-23 1 views
2

Possible en double:
SQL WHERE clause matching values with trailing spacesSQL Server bandes automatiquement espaces à la fin

Lors de l'interrogation SQL Server (via Management Studio Express pour ce que ça vaut), je l'ai remarqué que lors de l'interrogation d'un varchar ce champ n'a pas d'importance si vous avez un espace de fin dans vos critères, il correspondra toujours.

le symbôle ci-dessous matched (il ne tient pas compte du espace de fin dans les critères de recherche)

select top 10 * from sometable 
where somecolumn = 'matched ' 

J'ai essayé cela sur 2005 et 2012, même résultat.

Des idées pour lesquelles cela se produit? Est-ce que c'est quelque chose à voir avec comment varchar sont stockés?

+1

http://stackoverflow.com/a/4166186/284240 –

+0

Ne semble être que le marquage de cette question ("C#, base de données"!) signifie qu'il n'apparaissait pas dans les recherches de titre lors de l'écriture de la question. Suggérer un nouveau marquage de l'ancienne question. Si quelqu'un qui a des autorisations peut le faire s'il vous plaît. Après cela, cela peut être fermé en tant que doublon. –

+0

étiqueté en conséquence. –

Répondre

3

Il est un comportement normal: http://support.microsoft.com/kb/316626/

'comme' ne suit pas que le comportement:

select top 10 * from sometable 
where somecolumn like 'matched ' 

ne reviendra pas " en correspondance"

Questions connexes