gpt4 book ai didi

sql - 在 UPDATE 语句中有条件地设置值

转载 作者:行者123 更新时间:2023-12-02 23:11:13 24 4
gpt4 key购买 nike

我想要一个存储过程,它将根据是否提供参数来更新表行中的值。例如,我有一种情况想要更新所有值,但也有一种情况只需要更新两个值。我希望能够只用一个过程来完成此任务,而不是编写两个过程,这对我来说并不是特别有吸引力。我自己想出的最好的办法如下:

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

我意识到这些值无论如何都会每次更新,这并不理想。这是实现这一目标的有效方法,还是可以采取更好的方法?

最佳答案

我认为你的代码很好。我唯一要添加的是检查所有三个参数均为 NULL 的情况,在这种情况下不应进行更新。

关于sql - 在 UPDATE 语句中有条件地设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3832060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com