Eu descobri algo legal fazendo manutenção em uma procedure que envia e-mail aqui na minha empresa.

Analise a seguinte Estrutura


SET @corpo = @corpo + ‘</table>’
SET @corpo = @corpo + ‘</br>’
SET @corpo = @corpo + ‘<table width=”900″ style=”margin: 0px; font-family: Verdana;font-size: 12px;font-style:normal;” cellspacing=”1″ cellpadding=”2″ align=”center”>’
SET @corpo = @corpo + ‘<tr>’
SET @corpo = @corpo + ‘<td>Para aprovar clique <a href=’ + CONVERT(VARCHAR(8000), @LinkMenu) + ‘><b>aqui</b></a></td></tr></table></body>’

Qual será o valor da variável @corpo? Então, depende.

Se o valor da variável @LinkMenu for NULL a variável @corpo no final será NULL também.

Ou seja: Concatenação de VARCHAR com qualquer valor NULL o resultado é NULL. Logo devemos fazer a validação de ISNULL(@LinkMenu,’#’)

Parece bobo mas é importante.