Je souhaite disposer d'une procédure stockée qui mettra à jour les valeurs dans une ligne de table selon que les paramètres sont fournis ou non. Par exemple, j'ai une situation où je veux mettre à jour toutes les valeurs, mais aussi une situation où je suis seulement nécessaire pour mettre à jour deux valeurs. J'espérais pouvoir le faire avec une seule procédure, plutôt que d'en écrire deux, ce qui ne me plaît pas particulièrement. Le meilleur que je suis parvenu à trouver avec moi-même est quelque chose comme ce qui suit:Valeurs définies de façon conditionnelle dans l'instruction UPDATE
CREATE PROCEDURE dbo.UpdatePerson
@PersonId INT,
@Firstname VARCHAR(50) = NULL,
@Lastname VARCHAR(50) = NULL,
@Email VARCHAR(50) = NULL
AS
BEGIN
SET NOCOUNT ON
UPDATE Person
Set
Firstname = COALESCE(@Firstname, Firstname),
Lastname = COALESCE(@LastName, Lastname),
Email = COALESCE(@Email, Email)
WHERE PersonId = @PersonId
END
Je me rends compte que les valeurs seront mises à jour chaque fois que de toute façon, ce qui est idéal. Est-ce un moyen efficace d'y parvenir ou pourrait-il être mieux fait?
Article intéressant! – RedFilter
+1 Article utile et informatif. Merci d'avoir partagé! –
Merci Martin. Quelques informations utiles à connaître. –