要在数据库中更新的数据(如果存在)-否则应在SQL Server中插入新记录

Murli

我创建了一个插入语句,以在数据不存在时将数据添加到数据库。

INSERT INTO SampleList(SampleId, Type, Description)
    SELECT nr.SampleId, nr.Type, nr.Description
      FROM (VALUES (1,'A','AA'),
                 (2,'B','BB'),
                 (3,'C','CC'),
                 (4,'D','DD')
           ) AS nr (SampleId,Type,Description) 
      LEFT JOIN SampleList cr ON cr.SampleId = nr.SampleId 
      WHERE cr.SampleId IS NULL

但是,如果数据库中存在数据,我也想更新行。

你能帮我吗?

Yogesh Sharma

您可以使用MERGE

MERGE SampleList cr 
USING (SELECT nr.SampleId, nr.[Type], nr.[Description] 
       FROM (VALUES (1,'A','AA'), (2,'B','BB'), (3,'C','CC'), (4,'D','DD') 
                  ) as nr (SampleId, [Type], [Description])
      ) AS nr -- Use missed alias
       ON (cr.SampleId = a.SampleId) 
WHEN MATCHED THEN 
     UPDATE SET cr.[Type] = nr.[Type], cr.[Description] = nr.[Description] 
WHEN NOT MATCHED BY TARGET THEN 
     INSERT (SampleId, [Type], [Description]) 
        VALUES (nr.SampleId, nr.[Type], nr.[Description]); -- to terminate the merge

但是,您可以仅使用来简化子查询values

MERGE SampleList cr 
USING ( VALUES (1,'A','AA'), (2,'B','BB'), (3,'C','CC'), (4,'D','DD') 
      ) AS nr(SampleId, [Type], [Description]) 
      ON (cr.SampleId = a.SampleId)
WHEN MATCHED THEN 
     UPDATE SET cr.[Type] = nr.[Type], cr.[Description] = nr.[Description] 
WHEN NOT MATCHED BY TARGET THEN 
     INSERT (SampleId, [Type], [Description]) 
        VALUES (nr.SampleId, nr.[Type], nr.[Description]); -- to terminate the merge 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#更新,如果记录存在,否则插入新记录

来自分类Dev

H2 SQL数据库-如果记录不存在,则插入

来自分类Dev

具有ADODB数据库连接的VBA中的“如果存在” SQL查询

来自分类Dev

将“ SQL查询文本”存储在数据库中

来自分类Dev

更新sql行使用Python在数据库中添加新行

来自分类Dev

Codeigniter更新记录-无法在数据库中更新

来自分类Dev

SQL Server本地数据库无法插入新表中的数据

来自分类Dev

在SQL数据库中插入并更新日期时间

来自分类Dev

SQL在数据库中获取通用值

来自分类Dev

当我插入数据时,它在数据库中显示为“ 1”-php,sql

来自分类Dev

如果不在数据库中如何插入许多

来自分类Dev

在数据库中的SQL查询

来自分类Dev

如何检查ID是否存在于数据库中,否则将其插入数据库中?

来自分类Dev

如果数据库中存在数据

来自分类Dev

具有ADODB数据库连接的VBA中的“如果存在” SQL查询

来自分类Dev

是否将业务规则应用于C#代码或保存在数据库中?

来自分类Dev

在数据库表中的旧记录之后插入新记录

来自分类Dev

SQL Server 2008在表中插入缺少日期的新记录

来自分类Dev

更新sql行使用Python在数据库中添加新行

来自分类Dev

SQL Server本地数据库无法插入新表中的数据

来自分类Dev

更新SQL数据库中的数据

来自分类Dev

如果该行存在于C#的SQL数据库中,则显示标签

来自分类Dev

如果数据库中存在一个值,我该如何更新,否则我要插入它

来自分类Dev

SQL Server:如果存在,则在类似的数据库表之间更新或插入

来自分类Dev

更新或插入多个记录(如果不存在于mysql数据库的表中)

来自分类Dev

更新 SQL 数据库中的表

来自分类Dev

保存按钮,一旦记录已保存在数据库中,也可以更新

来自分类Dev

检查数据库中是否存在数据,如果未找到则使用多线程插入新数据?

来自分类Dev

测试数据库中是否存在数字,如果存在则创建新数字

Related 相关文章

  1. 1

    C#更新,如果记录存在,否则插入新记录

  2. 2

    H2 SQL数据库-如果记录不存在,则插入

  3. 3

    具有ADODB数据库连接的VBA中的“如果存在” SQL查询

  4. 4

    将“ SQL查询文本”存储在数据库中

  5. 5

    更新sql行使用Python在数据库中添加新行

  6. 6

    Codeigniter更新记录-无法在数据库中更新

  7. 7

    SQL Server本地数据库无法插入新表中的数据

  8. 8

    在SQL数据库中插入并更新日期时间

  9. 9

    SQL在数据库中获取通用值

  10. 10

    当我插入数据时,它在数据库中显示为“ 1”-php,sql

  11. 11

    如果不在数据库中如何插入许多

  12. 12

    在数据库中的SQL查询

  13. 13

    如何检查ID是否存在于数据库中,否则将其插入数据库中?

  14. 14

    如果数据库中存在数据

  15. 15

    具有ADODB数据库连接的VBA中的“如果存在” SQL查询

  16. 16

    是否将业务规则应用于C#代码或保存在数据库中?

  17. 17

    在数据库表中的旧记录之后插入新记录

  18. 18

    SQL Server 2008在表中插入缺少日期的新记录

  19. 19

    更新sql行使用Python在数据库中添加新行

  20. 20

    SQL Server本地数据库无法插入新表中的数据

  21. 21

    更新SQL数据库中的数据

  22. 22

    如果该行存在于C#的SQL数据库中,则显示标签

  23. 23

    如果数据库中存在一个值,我该如何更新,否则我要插入它

  24. 24

    SQL Server:如果存在,则在类似的数据库表之间更新或插入

  25. 25

    更新或插入多个记录(如果不存在于mysql数据库的表中)

  26. 26

    更新 SQL 数据库中的表

  27. 27

    保存按钮,一旦记录已保存在数据库中,也可以更新

  28. 28

    检查数据库中是否存在数据,如果未找到则使用多线程插入新数据?

  29. 29

    测试数据库中是否存在数字,如果存在则创建新数字

热门标签

归档