dav*_*mcd 2 sql sql-server conditional
如何运行如下所示的UPDATE,它只更新非空的列?
UPDATE Table
SET Name = @Name,
Email = @Email,
Phone = @Phone
WHERE id = @id
Run Code Online (Sandbox Code Playgroud)
编辑:
因此,如果我使用上述更新但分配了以下内容......
@Name = Tom
@Email = NULL
@Phone = NULL
Run Code Online (Sandbox Code Playgroud)
因此,只有名称会被更新,电子邮件和电话数据库中的任何内容都将保留在数据库中.
这个基本想法应该有效:
UPDATE Table
SET Name = ISNULL(@Name, Name),
Email = ISNULL(@Email, Email),
Phone = ISNULL(@Phone, Phone)
WHERE id = @id
Run Code Online (Sandbox Code Playgroud)
所以如果@Name是NULL,Name则不变.如果@Name是不 NULL,则分配给Name等..
---编辑---
当然@clintp,COALESCE变体看起来像这样:
UPDATE Table
SET Name = COALESCE(@Name, Name),
Email = COALESCE(@Email, Email),
Phone = COALESCE(@Phone, Phone)
WHERE id = @id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |