我正在运行一个简单的 SQL 查询来更新表中的几列。对于除一列之外的所有列,无论如何我都希望它们更新,但其中一个是外键,并且只有当它存在于另一个表中时,我才想更新它。我正在使用这样的语句:
update table1
set column1 = @var1, column2 = @var2, FK = @var3
where PK = @var4
我该如何编写才能使 column1 和 column2 始终更新,但 FK 仅在存在于例如 table2 中时才会更新?
这是一种方法:
update table1
set column1 = @var1,
column2 = @var2,
FK = (case when exists (select 1 from table2 t2 where t2.pk = @var3)
then @var3 else FK
end)
where PK = @var4;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句