【发布时间】:2012-01-17 02:00:15
【问题描述】:
如何运行如下所示的 UPDATE,它只更新不为空的列?
UPDATE Table
SET Name = @Name,
Email = @Email,
Phone = @Phone
WHERE id = @id
编辑:
因此,如果我使用上述更新但分配了以下内容...
@Name = Tom
@Email = NULL
@Phone = NULL
所以只有姓名会被更新,而电子邮件和电话数据库中的任何内容都将保留在数据库中。
【问题讨论】:
-
您可以使用case语句来检查是否有空值,如果不为空则返回原始值,如果为空则返回新值。
-
您的第一个语句与您的最后一个语句不匹配,您是只想在数据库值不为空时更新还是在变量不为空时不更新?
-
是的,编辑使他的最初问题看起来应该是,“我怎样才能运行像下面这样的更新,它只更新新值不为空的列?”
标签: sql sql-server conditional