首页 > 解决方案 > 从另一个表中获取数据,如果存在则插入,否则更新

问题描述

例如,我有一个名为

应用

+---------------+------+-------+--------+-------+-------+
| ApplicationID | Name | Phone | DeptID | EmpNo | Email |
+---------------+------+-------+--------+-------+-------+
|               |      |       |        |       |       |

有列的员工

+-------+------+-------+--------+
| EmpNo | Name | Phone | DeptID |
+-------+------+-------+--------+
|       |      |       |        |

EmpNo 是 int 且唯一的

当一个新人申请时,他们将被插入到申请表中,如果获得批准,他们将获得一个员工编号。

当前员工想申请新部门时,还需要将其插入申请表并进行处理

每个月我都需要处理这个表中的数据并插入/更新另一个名为employee 的表。

INSERT INTO [Employee]
(
    [EmpNo]
  ,[Name]
  ,[Phone]
  ,[DeptID]
)
SELECT [EmpNo]
  ,[Name]
  ,[Phone]
  ,[DeptID]
  FROM [applications]

仅当应用表中存在 EmpNo 时如何更新?

标签: sqlsql-serverssms

解决方案


推荐阅读