我已经阅读了有关此问题的其他帖子,而且我还没有找到一个从我的情况中收到此错误的帖子。
对于以下查询:
INSERT INTO dbo.EightIDs (Email)
SELECT Email
FROM dbo.TempTransferTable
WHERE dbo.TempTransferTable.EightID = dbo.EightIDs.EID
我收到错误
无法绑定多部分标识符
在查询的dbo.EightIDs.EID
部分。我不确定为什么它会给我一个问题,因为我基本上只想将一个表中的ID与第二个表中的ID匹配,然后相应地调整电子邮件。
修改
基于有关UPDATE
与JOIN
的使用的评论,这是我想出的内容。这看起来更合适吗?
UPDATE tbl1
SET tbl1.Email = tbl2.Email
FROM dbo.EightIDs tbl1
JOIN dbo.TempTransferTable tbl2 ON tbl2.EightID = tbl1.EID
答案 0 :(得分:1)
您需要在列名前面提到表名或别名。希望两个表中都存在电子邮件列:
INSERT INTO dbo.EightIDs (Email)
SELECT TT.Email
FROM dbo.TempTransferTable TT
JOIN dbo.EightIDs EI ON EI.EID = TT.EightID
或者如果您想根据TempTransferTable将列更新为EightID,您可以使用以下查询:
UPDATE EI
SET EI.Email = TT.Email
FROM dbo.EightIDs EI
JOIN dbo.TempTransferTable TT ON TT.EightID = EI.EID