多部分标识符无法绑定

时间:2016-04-20 15:16:26

标签: sql sql-server

我已经阅读了有关此问题的其他帖子,而且我还没有找到一个从我的情况中收到此错误的帖子。

对于以下查询:

INSERT INTO dbo.EightIDs (Email)
    SELECT Email
    FROM dbo.TempTransferTable
    WHERE dbo.TempTransferTable.EightID = dbo.EightIDs.EID

我收到错误

  

无法绑定多部分标识符

在查询的dbo.EightIDs.EID部分。我不确定为什么它会给我一个问题,因为我基本上只想将一个表中的ID与第二个表中的ID匹配,然后相应地调整电子邮件。

修改

基于有关UPDATEJOIN的使用的评论,这是我想出的内容。这看起来更合适吗?

UPDATE tbl1
SET tbl1.Email = tbl2.Email
FROM dbo.EightIDs tbl1
JOIN dbo.TempTransferTable tbl2 ON tbl2.EightID = tbl1.EID

1 个答案:

答案 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