Te dejo un pequeño ejemplo
Código:
1> declare @var int
2> set @var = null
3>
4> if @var = null
5> select 1
6> else
7> select 0
8>
9> if @var != null
10> select 1
11> else
12> select 0
13>
14> if @var is null
15> select 1
16> else
17> select 0
18> go
-----------
0
(1 fila afectada)
-----------
0
(1 fila afectada)
-----------
1
(1 fila afectada)
El nulo es la eterna discusión, no es un valor, representa la ausencia de valor, por lo tanto no puedes comparar una variable con null, solo puedes preguntar si la variable es null.
Imagina que tienes dos cajas con monedas dentro, sabes la cantidad de monedas y dinero que hay en la primera pero no sabes nada de la segunda, en este caso la segunda representa un null, no puedes responder a las preguntas, ¿cuanto dinero suma la primera caja más la segunda?, ¿tienen la misma cantidad de dinero?, etc. Solo puedes responder que no tienes el valor de la segunda, esto es @var is null?
Es probable que lo único que buscabas era saber porque no funciona la línea de código que posteaste, pero me pareció un buen momento para comentar este tema :)
Saludos