T SQL null variable

J'ai une procédure stockée appelée à partir d'une .aspx.cs page. J'ai un paramètre qui parfois ne peut pas être envoyé lorsque la procédure stockée est appelée. À cause de cela, je suis en train de faire les suivants:

 IF @variable is null
     BEGIN
         ...do this...
     END
 Else 
         ...do that...

Mon problème est dans l'instruction if. Aussi loin que je peux dire quand je utiliser les produits suivants:

  • if @parameterVariable = null
  • if @parameterVariable = ''
  • if @parameterVariable <= 0

Rien ne se passe!? Quand je debug de la procédure stockée dans SSMS, je trouve que (même si le paramètre est vide (pas de sélection de l'utilisateur)) que le curseur va et exécute le code dans le ELSE. Suis-je en train de faire quelque chose de mal?

Merci!

Est @parameterVariable fait null ?
Je suis en utilisant Declare @variable et set @variable = null Généralement le paramètre doit contenir une valeur. Cependant j'ai trouvé et suis en train de corriger la procédure stockée à gérer lorsque l'utilisateur n'a pas à faire la sélection et le paramètre n'est pas défini.
Vous avez probablement un problème quelque part d'autre, cela fonctionne bien. Voir: sqlfiddle.com/#!3/d41d8/6290
pouvez-vous poster le code de votre procédure stockée?
Toutes ces comparaisons avec NULL (sauf pour IS NULL) résultat de la unknown pas true ou false. Lire sur trois estimés de la logique.

OriginalL'auteur Computer Guy | 2012-11-16