SQL - 更新一个表中的多个列,但其中一个是外键,只有存在时才应更新

罗伯特

我正在运行一个简单的 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 SQL 中创建一个只有外键列的表是否正确?

来自分类Dev

SQL:将两列(来自不同的表)相乘并插入/更新(其中一个表)

来自分类Dev

使用来自SQL Server中另一个表的ID更新现有表的新外键列

来自分类Dev

SQL - 从多个表中选择其中一个没有结果

来自分类Dev

SQL-更新多个表,一个查询中的同一列

来自分类Dev

PHP Foreach SQL,仅在插入最后一个查询时才在重复键更新中插入?

来自分类Dev

SQL:显示在另一个表中不存在的元素,或者存在但在其中一个列中没有包含特定值的行的元素

来自分类Dev

SQL插入触发器之前-插入另一个表并更新外键

来自分类Dev

SQL Server:连接2个表,优先选择其中一个有冲突的表中的结果

来自分类Dev

对 3 个表的 SQL 查询,其中一个具有不同的列名

来自分类Dev

选择多个列,而在SQL Server Compact Edition中只有一个不同的列

来自分类Dev

从另一个表SQL更新列值

来自分类Dev

如果全局 WHERE 未满,则带有 JOIN 的 SQL,其中一个表的列为空

来自分类Dev

Linq to SQL在一个查询中更新多个记录

来自分类Dev

sql-如何从连接多个表中选择只有一个不同列的多个列

来自分类Dev

sql Oracle:仅当值存在时才从另一个表插入一个值

来自分类Dev

SQL:根据另一个表的计数结果更新一个表中的列

来自分类Dev

SQL / MS Access:在SQL表中添加一个自动更新的字段,其中包含来自另一个表的值的总和

来自分类Dev

如何使用一个SQL查询更新一列中的多个值?

来自分类Dev

MS SQL在一个表中查找多个列

来自分类Dev

显示两列,但其中一列与SQL Server中另一个表中的另一列合并

来自分类Dev

SQL中一个单词中的多个字母

来自分类Dev

T-SQL列,指示一个或多个记录存在于单独的表中

来自分类Dev

当另一个列与SQL中的列表中的值匹配时更新列值

来自分类Dev

SQL 引用同一个表的多个外键

来自分类Dev

SQL - 一个很长的表,有几个外键 VS 几个短表

来自分类Dev

如何检索 SQL Server 中一个表的任何字段中不存在的数据?

来自分类Dev

试图让一个表的外键,SQL抛出一个错误

来自分类Dev

一个表中的SQL更新值与Oracle SQL Developer中的另一个表的值匹配

Related 相关文章

  1. 1

    在 SQL 中创建一个只有外键列的表是否正确?

  2. 2

    SQL:将两列(来自不同的表)相乘并插入/更新(其中一个表)

  3. 3

    使用来自SQL Server中另一个表的ID更新现有表的新外键列

  4. 4

    SQL - 从多个表中选择其中一个没有结果

  5. 5

    SQL-更新多个表,一个查询中的同一列

  6. 6

    PHP Foreach SQL,仅在插入最后一个查询时才在重复键更新中插入?

  7. 7

    SQL:显示在另一个表中不存在的元素,或者存在但在其中一个列中没有包含特定值的行的元素

  8. 8

    SQL插入触发器之前-插入另一个表并更新外键

  9. 9

    SQL Server:连接2个表,优先选择其中一个有冲突的表中的结果

  10. 10

    对 3 个表的 SQL 查询,其中一个具有不同的列名

  11. 11

    选择多个列,而在SQL Server Compact Edition中只有一个不同的列

  12. 12

    从另一个表SQL更新列值

  13. 13

    如果全局 WHERE 未满,则带有 JOIN 的 SQL,其中一个表的列为空

  14. 14

    Linq to SQL在一个查询中更新多个记录

  15. 15

    sql-如何从连接多个表中选择只有一个不同列的多个列

  16. 16

    sql Oracle:仅当值存在时才从另一个表插入一个值

  17. 17

    SQL:根据另一个表的计数结果更新一个表中的列

  18. 18

    SQL / MS Access:在SQL表中添加一个自动更新的字段,其中包含来自另一个表的值的总和

  19. 19

    如何使用一个SQL查询更新一列中的多个值?

  20. 20

    MS SQL在一个表中查找多个列

  21. 21

    显示两列,但其中一列与SQL Server中另一个表中的另一列合并

  22. 22

    SQL中一个单词中的多个字母

  23. 23

    T-SQL列,指示一个或多个记录存在于单独的表中

  24. 24

    当另一个列与SQL中的列表中的值匹配时更新列值

  25. 25

    SQL 引用同一个表的多个外键

  26. 26

    SQL - 一个很长的表,有几个外键 VS 几个短表

  27. 27

    如何检索 SQL Server 中一个表的任何字段中不存在的数据?

  28. 28

    试图让一个表的外键,SQL抛出一个错误

  29. 29

    一个表中的SQL更新值与Oracle SQL Developer中的另一个表的值匹配

热门标签

归档