Sql 如果员工没有';不存在

Sql 如果员工没有';不存在,sql,sql-update,sql-insert,Sql,Sql Update,Sql Insert,我正试图编写一个脚本,将数据从表1插入表2,仅当员工在表1中而不在表2中,或者如果员工信息从表1更改为表2并添加了更改日期 表1:员工编号、姓名、受雇日期和期限 表2:EmployeeNumber、Name、HireDate、Termdate、ChangeDate(更新到db的日期)getdate() 样本数据: 表1: EmployeeNumber - Name - HireDate - TermDate ------------------------------------------

我正试图编写一个脚本,将数据从表1插入表2,仅当员工在表1中而不在表2中,或者如果员工信息从表1更改为表2并添加了更改日期

  • 表1:员工编号、姓名、受雇日期和期限
  • 表2:EmployeeNumber、Name、HireDate、Termdate、ChangeDate(更新到db的日期)getdate()
样本数据:

表1:

EmployeeNumber - Name - HireDate - TermDate
-------------------------------------------
1234           - Ted  - 8-12-1980 -  NULL
9632           - Josh - 1-1-2019  - 3-29-2019
5678           - Jeff - 3-29-2019 - NULL 
表2:

EmployeeNumber - Name - HireDate - TermDate  - ChangeDate
---------------------------------------------------------
1234          -  Ted - 8-12-1980 -NULL -      8-12-1980
9632          -  Josh - 1-1-2019 - NULL -      1-1-2019
EmployeeNumber - Name - HireDate - TermDate  - ChangeDate
---------------------------------------------------------
1234            - Ted  -   8-12-1980 - NULL      -      8-12-1980
9632            - Josh -   1-1-2019  - NULL      -      1-1-2019
9632            - Josh -   1-1-2019  - 3-26-2019 -      3-29-2019
5678            - Jeff -   3-29-2019 - NULL      -      3-29-2019
我尝试了几次插入和更新查询,但都没有成功

此查询用于插入不存在的记录

INSERT INTO Table2 ([EmployeeNumber], [Name], [HireDate], [Termdate], [ChangeDate])
    SELECT 
        *, GETDATE() AS 'ChangeDate'
    FROM 
        Table1
    WHERE 
        NOT EXISTS (SELECT [EmployeeNumber] 
                    FROM Table2 
                    WHERE Table1.[EmployeeNumber] = Table2.[EmployeeNumber])
查询运行后,表2应如下所示:

表2:

EmployeeNumber - Name - HireDate - TermDate  - ChangeDate
---------------------------------------------------------
1234          -  Ted - 8-12-1980 -NULL -      8-12-1980
9632          -  Josh - 1-1-2019 - NULL -      1-1-2019
EmployeeNumber - Name - HireDate - TermDate  - ChangeDate
---------------------------------------------------------
1234            - Ted  -   8-12-1980 - NULL      -      8-12-1980
9632            - Josh -   1-1-2019  - NULL      -      1-1-2019
9632            - Josh -   1-1-2019  - 3-26-2019 -      3-29-2019
5678            - Jeff -   3-29-2019 - NULL      -      3-29-2019

我不知道你在问什么,但我认为你正在寻找的方法是

祝你好运