ern*_*est 2 sql sql-server stored-procedures
我有一个存储过程,它使用一个简单的UPDATE,并传递一些变量.但是当我们的变量不为null时,我不想更新这些字段.这基本上就是我的陈述.
UPDATE myTable
SET myColumn = @myColumn,
mColumn1 = @myColumn1
WHERE myColumn2 = @myColumn2
Run Code Online (Sandbox Code Playgroud)
无论如何在SET中应用一些条件逻辑?我有大约10个需要检查的字段,所以我不希望每个字段或类似的事情进行更新.
有任何想法吗?
COALESCE是你的朋友.它返回第一个非NULL参数.我从你的叙述中确实不确定你想要什么东西,它是:
UPDATE myTable
SET myColumn = COALESCE(myColumn,@myColumn),
mColumn1 = COALESCE(myColumn1,@myColumn1)
WHERE myColumn2 = @myColumn2
Run Code Online (Sandbox Code Playgroud)
如果列不为null,则保留当前列的值,或者
UPDATE myTable
SET myColumn = COALESCE(@myColumn,myColumn),
mColumn1 = COALESCE(@myColumn1,myColumn1)
WHERE myColumn2 = @myColumn2
Run Code Online (Sandbox Code Playgroud)
如果变量为null,则保留当前列的值.
| 归档时间: |
|
| 查看次数: |
596 次 |
| 最近记录: |