Zostało to wyraźnie udokumentowane przez firmę Microsoft w witrynie MSDN pod adresem http://msdn.microsoft.com/en-us/library/ms190329(SQL.90).aspx, która stwierdza, że LEN „zwraca liczbę znaków określonego wyrażenia ciągu, z wyłączeniem końcowe spacje". Jest to jednak łatwy szczegół do przeoczenia, jeśli nie jesteś ostrożny.
Zamiast tego musisz użyć funkcji DATALENGTH — zobacz http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx — która „zwraca liczbę bajtów użytych do reprezentowania dowolnego wyrażenia”.
Przykład:
SELECT
ID,
TestField,
LEN(TestField) As LenOfTestField, -- Does not include trailing spaces
DATALENGTH(TestField) As DataLengthOfTestField -- Shows the true length of data, including trailing spaces.
FROM
TestTable