我试图将表中的两列合并到另一个包含相同两列的表的外键引用中。我首先要做的事情是:
INSERT INTO dbo.Securities (SubIndustID)
SELECT ID FROM dbo.SubIndust
WHERE dbo.SubIndust.GICS_Sector = dbo.Securities.GICS_Sector
AND dbo.SubIndust.SubIndustry = dbo.Securities.SubIndustry;
我在子查询中的每个引用都会收到一条错误消息,指向目标表中的一列:
多部分标识符" dbo.Securities.GICS_Sector"无法绑定。
多部分标识符" dbo.Securities.SubIndustry"无法绑定。
为什么正确的方法来进行外键替换?
答案 0 :(得分:2)
如果要在查询中的其他位置使用它,则需要在from
子句中提及该表。这将是一个语法更正确的版本:
INSERT INTO dbo.Securities (SubIndustID)
SELECT i.ID
FROM dbo.SubIndust i JOIN
dbo.Securities s
ON i.GICS_Sector = s.GICS_Sector AND
i.SubIndustry = s.SubIndustry;
但是,我怀疑你真的想要更新:
update s
set s.SubIndustID = i.Id
from dbo.Securities s JOIN
dbo.SubIndust i
on i.GICS_Sector = s.GICS_Sector AND
i.SubIndustry = s.SubIndustry;