小编Spr*_*ner的帖子

如何使用单个查询插入或更新?

我有一个表测试,其中包含主键和自动递增的列 id 和名称。当且仅当没有记录时,我想插入一条新记录。例如

输入是 id=30122 和 name =john

如果有 ID 为 30122 的记录,那么我将 name 列更新为 john,如果没有记录,那么我将插入一条新记录。

我可以使用 2 个查询,例如

select * from test where id=30122
Run Code Online (Sandbox Code Playgroud)

如果它有一些记录,那么我可以使用 update test set name='john' where id=3012

或者如果它没有记录,那么我可以使用

insert into test(name) values('john')
Run Code Online (Sandbox Code Playgroud)

但我想使用单个查询?

有人可以告诉它是否可能吗?

sql-server merge upsert

38
推荐指数
2
解决办法
27万
查看次数

标签 统计

merge ×1

sql-server ×1

upsert ×1