Я хотел бы иметь хранимую процедуру, которая будет обновлять значения в строке таблицы в зависимости от того, указаны ли параметры. Например, у меня есть ситуация, когда я хочу обновить все значения, но также и ситуация, когда мне нужно обновить только два значения. Я надеялся, что смогу сделать это только с одной процедурой, а не с написанием двух, что мне не особо нравится. Лучшее, что мне удалось придумать - это что-то вроде следующего:
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
Я понимаю, что в любом случае значения будут обновляться каждый раз, что не идеально. Это эффективный способ достижения этого, или это может быть сделано лучше?