Funzione Len di T-SQL non considera gli spazi
Attenzione alla funzione Len() di SQL Server in quanto nel calcolo NON considera gli spazi finali (blank) come si evince dall'help online http://msdn.microsoft.com/en-us/libr...s190329.aspx
Returns the number of characters of the specified string expression, excluding trailing blanks.
da come risultato
SQL
declare @s char(16) -- idem con nchar, varchar e nvarchar
set @s = 'a '
select len(@s) -- ritorna 1 anzichè 5 (varchar) o 16 (char)
SELECT '[' + @s + ']' -- visualizza il campo di lunghezza 16, la 'a' seguita da 15 spazi
SELECT LEN(@s + '*') - 1 -- ritorna 16, la lunghezza del campo come definito (con varchar ritorna 5)
Text
-----------
1
(1 row(s) affected)
------------------
[a ]
(1 row(s) affected)
-----------
16
(1 row(s) affected)
Testata su un SQL Server 2005 v. 9.0.4053 e su un SQL Server 2008 v. 10.50.1600