Me gustaría tener un procedimiento almacenado que actualice los valores en una fila de tabla según se proporcionen o no los parámetros. Por ejemplo, tengo una situación en la que quiero actualizar todos los valores, pero también una situación en la que solo estoy obligado a actualizar dos valores. Esperaba poder hacer esto con un solo procedimiento, en lugar de escribir dos, lo que no me atrae particularmente. El mejor que he conseguido llegar a mí mismo es algo como lo siguiente:Valores establecidos condicionalmente en la instrucción 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
Soy consciente de que los valores se actualizan cada vez que de todos modos, que no es lo ideal. ¿Es esta una manera efectiva de lograr esto, o podría hacerse de una manera mejor?
¡Artículo interesante! – RedFilter
+1 Artículo útil e informativo. ¡Gracias por compartir! –
Gracias Martin. Alguna información útil para saber. –