我知道有很多关于这个主题的帖子,但我真的很难过为什么我的代码不起作用。我只是有两个表,我正在尝试使用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。
答案 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]);