请帮助:无法绑定多部分标识符

时间:2015-06-09 16:25:44

标签: mysql sql

我知道有很多关于这个主题的帖子,但我真的很难过为什么我的代码不起作用。我只是有两个表,我正在尝试使用where语句更新另一个表中的值。我在其他实例中几乎使用了相同的代码,没有任何问题,所以我不确定为什么我在这种情况下会收到错误。如果有人能提供任何帮助,我将非常感激。

代码:

 update [DB].[dbo].[table1]

   set [DB].[dbo].[table1].[variable_name] = [DB].[dbo].[table2].[variable_name]

   where ([DB].[dbo].[table1].[Year] =  [DB].[dbo].[table2].[Year] and 
[DB].[dbo].[table1].[Id] = [DB].[dbo].[table2].[Id]);

Variable_Name是两个表中的文本,而Year / Id都是Int。

1 个答案:

答案 0 :(得分:2)

您需要在update语句中加入table2。

UPDATE t1 
SET [table1].[variabe_name] = [table2].[variable_name]
FROM [table1] t1
INNER JOIN [table2]
    ON [table1].[variable_name] = [table2].[variable_name]
WHERE ([table1].[Year] = [table2].[Year] AND [table1].[Id] = [table2].[Id]);