Comment comparer les valeurs qui peuvent être null est T-SQL

Je veux m'assurer que je ne suis pas d'insérer une ligne en double dans ma table (par exemple, seule clé primaire différentes). Tout mon champ autoriser les valeurs NULL que j'ai décidé de la valeur null signifie "toutes les valeurs". En raison de la valeur null, la déclaration suivante dans ma procédure stockée ne peut pas fonctionner:

IF EXISTS(SELECT * FROM MY_TABLE WHERE 
    MY_FIELD1 = @IN_MY_FIELD1  AND
    MY_FIELD2 = @IN_MY_FIELD2  AND
    MY_FIELD3 = @IN_MY_FIELD3  AND 
    MY_FIELD4 = @IN_MY_FIELD4  AND
    MY_FIELD5 = @IN_MY_FIELD5  AND
    MY_FIELD6 = @IN_MY_FIELD6)
    BEGIN
        goto on_duplicate
    END

depuis NULL = NULL n'est pas vrai.

Comment puis-je vérifier les doublons sans avoir de SI EST NUL, pour chaque colonne?

  • Sont à la fois MY_FIELD{1,6} (de la table) et les variables @IN_MY_FILED{1,6} nullable ou est-ce juste MY_FIELD{1,6}?
InformationsquelleAutor srmark | 2009-07-02