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.

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)
da come risultato

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
Tags:
Database75 SQL90 SQL Server100 T-SQL66
Potrebbe interessarti anche: