sql - 如果记录存在,则更新,否则插入

标签 sql sql-server sql-server-2008 merge upsert

我正在尝试在两个 SQL Server 2008 表之间移动一些数据。如果表 2 中存在包含表 1 中的电子邮件的记录,则使用表 1 中的数据更新该记录,否则插入一条新记录。

在表 1 中,我有很多列;名字、姓氏、电子邮件等。

我不太确定如何构建查询来更新表 2(如果表 1 中的电子邮件存在)或插入新行(如果表 1 中的电子邮件在表 2 中不存在)。

我尝试在 Google 上进行一些搜索,但大多数解决方案似乎都是通过创建一些存储过程来工作的。所以我想知道是否有人知道如何构建一个合适的查询来实现这个目的?

最佳答案

我认为MERGE就是你想要的。

关于sql - 如果记录存在,则更新,否则插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1630332/

相关文章:

mysql - 如何根据选择查询的结果更新表?

sql-server - 数据库设计 - 配置/设置表

mysql - 多个 MYSQL 语句合二为一

sql - Postgresql:将连接查询的行合并到新的列数组中

sql-server - 合并与截断和插入

sql - 在 sql server 中将列类型从 bigint 更改为 numeric(18,0)

sql - 使用连接重复项更新语句

php - 从数组中找到值的总和

sql-server - 只有系统管理员可以为 RAISERROR 命令指定WITH LOG 选项

java - 进行查找并编写查询以从 sql server 获取数据