如果Employee不存在,则将数据从Table1插入Table2的SQL脚本

问题描述 投票:-2回答:1

我正在尝试编写一个脚本来将数据从Table1插入到Table2,只有当Employee在Table1中而不在Table2中或者Employee Information从Table1更改为Table2时才添加更改。

  • 表1:EmployeeNumber,Name,HireDate,Termdate
  • 表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

我已经尝试了几个插入和更新查询没有运气。

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

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])

查询运行后,Table2应如下所示:

表2:

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
sql sql-update sql-insert
1个回答
0
投票

我不确定你在问什么,但我认为你正在寻找的方法是INNER JOIN

祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.