Dies ist eindeutig von Microsoft in MSDN unter https://msdn.microsoft.com/en-us/library/ms190329(SQL.90).aspx dokumentiert, wo angegeben ist, dass LEN „die Anzahl der Zeichen des angegebenen Zeichenfolgenausdrucks zurückgibt, ausschließlich nachgestellte Leerzeichen". Es ist jedoch ein leicht zu übersehendes Detail, wenn Sie nicht vorsichtig sind.
Sie müssen stattdessen die Funktion DATALENGTH verwenden – siehe https://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx – die „die Anzahl der Bytes zurückgibt, die zur Darstellung eines beliebigen Ausdrucks verwendet werden“.
Beispiel:
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