我想更新非空的数据库列,但我只想更新其中的一些。其余的应该是旧的价值观。如何使用SQL Server存储过程处理此问题。
答案 0 :(得分:2)
执行条件update
的基本语法,您想要排除某些非空值,如下所示:
UPDATE t1
SET t1.col2 = update_value
FROM table1 t1
WHERE t1.col1 IS NOT NULL
AND NOT EXISTS (
SELECT 1
FROM table1
WHERE t1.id = t2.id
AND t.col1 IN ('value1','value2') --values you don't want to update
);
如果您需要更新的值较少,而不是您不需要更新的值,则可以改为:
UPDATE t1
SET t1.col2 = update_value
FROM table1 t1
WHERE t1.col1 IS NOT NULL
AND t.col1 IN ('value1','value2'); --values you want to update