Quem pode explicar por que
select case when '' = ' ' then 1 else 0 end, LEN(''), LEN(' '), DATALENGTH(''), DATALENGTH(' ');
rendimentos
----------- ----------- ----------- ----------- -----------
1 0 0 0 1
A consequência engraçada disso é que em
create table test ( val varchar(10) );
insert into test values( '' );
update test set val = ' ' where val = '';
a atualização irá de fato substituir a string vazia por um espaço em branco, mas a cláusula where continua verdadeira e as execuções repetidas da instrução de atualização informam
(1 row(s) affected)
Espaços em branco à direita explicados :
Aqui está um exemplo bem conhecido de todos os casos mencionados acima:
Aqui estão mais alguns detalhes sobre os espaços em branco à direita e a
LIKE
cláusula .