[英]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.