SQL Server e la comparazione di stringhe

Se si esegue una query di questo tipo:

SELECT * From Contacts WHERE Name = ‘Joe ‘

il risultato sarà che se esiste un record con Name = ‘Joe’ questo verrà selezionato anche se nella query era stato richiesto Joe seguito da un certo numero di spazi.

Il motivo è che SQL Server segue le specifiche ANSI/ISO SQL-92(Section 8.2, Comparison Predicate , General rules #3) che richiede il padding dei caratteri stringa durante le comparazioni.
Il padding riguarda la semantica del WHERE e della clausola HAVING con l’eccezione del LIKE.

L’impostazione SET ANSI_PADDING non modifica questo comportamento.

Per maggiori informazioni si faccia riferimento al seguente:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q316626