簡體   English   中英

SQL Insert into Exists - 將外鍵添加到現有表

[英]SQL Insert Into Exists - Adding a foreign key to existing table

我試圖從一個表添加一個鍵到另一個表,以便我可以創建一對多的關系。 我想添加外鍵的表目前有員工的名字和姓氏,但不是ID。 我想查詢employee表,根據他們的名字和姓氏找到ID,然后將其添加到傷害表中。

我一直收到以下錯誤:

The multi-part identifier "InjuryOLD.FirstName" could not be bound.
The multi-part identifier "dbo.InjuryOLD.LastName" could not be bound.

下面是SQL語句:

Insert into dbo.InjuryOLD(dbo.InjuryOLD.EmpID)
Select dbo.EmployeeInformation.EmpID
From EmployeeInformation
Where exists(select dbo.EmployeeInformation.EmpID from dbo.EmployeeInformation
             where dbo.EmployeeInformation.FirstName = dbo.InjuryOLD.FirstName 
             and dbo.EmployeeInformation.LastName = dbo.InjuryOLD.LastName)

我已經確保我引用的表格和列沒有拼寫錯誤,我知道兩個員工可能有相同的名字。 但是在這種情況下並非如此。

SELECT部分和INSERT語句應該始終有效

所以...

Select dbo.EmployeeInformation.EmpID
From EmployeeInformation
Where exists(select dbo.EmployeeInformation.EmpID from dbo.EmployeeInformation
             where dbo.EmployeeInformation.FirstName = dbo.InjuryOLD.FirstName 
             and dbo.EmployeeInformation.LastName = dbo.InjuryOLD.LastName)

...不起作用,因為在任何一個FROM子句中都沒有引用dbo.InjuryOLD 你可能dbo.InjuryOLD放在Exists子查詢的from子句中而不是重復EmployeeInformation

Select dbo.EmployeeInformation.EmpID
From EmployeeInformation
Where exists(select 1 from dbo.InjuryOLD  
             where
                 dbo.EmployeeInformation.FirstName = dbo.InjuryOLD.FirstName 
                 and dbo.EmployeeInformation.LastName = dbo.InjuryOLD.LastName)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM