Voici ce que je veux faire:Passer la valeur du paramètre par défaut vs ne pas passer le paramètre du tout?
donné une table
PeopleOutfit (id int primary key, boots int, hat int)
Et un moyen de procédure stockée
UpdateOutfit @id int, @newBoots int = null, @newHat = null
Est-il dire si j'ai appelé cette procédure
exec UpdateOutfit @id=1, @newBoots=null, @newHat=5
indiquant effectivement que la personne avec id de 1 doit maintenant être pieds nus et porter le cinquième chapeau de
exec UpdateOutfit @id=1, @newHat=5
qui demande à cette personne de porter un cinquième chapeau en gardant ses bottes actuelles? En d'autres termes, je veux dire (dans la procédure stockée) si "la valeur par défaut a été utilisée parce qu'elle n'a pas été spécifiée" de "J'ai explicitement appelé cette procédure en passant la valeur qui est identique à celle par défaut ".
Je sais qu'il y a plusieurs façons d'accomplir ce que je veux faire comme passer XML ou bitmask de champs en cours de mise à jour, mais pour le moment je veux juste m'assurer que cette technique exacte est possible ou non. Editer: Passer des valeurs réservées ne fonctionne pas pour les champs avec de petits types de plage tels que les bits. Les procédures de surcharge sont également une option inacceptable. Créer un type défini par l'utilisateur qui étend le paradigme NULL avec une valeur supplémentaire "NotAValue" pourrait être une réponse, mais j'ai besoin de plus de conseils sur la façon de l'implémenter.
Oui, c'est un moyen, mais ce serait un problème avec les champs de bits. –