更新表 - 无法绑定多部分标识符

时间:2014-10-20 14:20:15

标签: sql sql-server-2012

我需要从数据库的备份版本更新单个列。我已将备份还原到其他数据库位置,并运行以下命令:

update table_name
   Set
   column = restoredDB.dbo.table_name.column
From restoredDB.dbo.table_name
Where restoredDB.dbo.table.ID = table_name.ID

返回以下结果:

  

无法绑定多部分标识符“table_name.ID”

ID字段是主键bigint。我发现许多关于“多部分标识符无法绑定”主题的帖子,但它们似乎不适用于我的情况。有人可以解释为什么会发生这种情况以及如何纠正错误吗?

THX。

4 个答案:

答案 0 :(得分:2)

列引用所需的只是TableName.ColumnName:

update table_name
   Set
   column = table_name.column
From restoredDB.dbo.table_name
Where table.ID = table_name.ID

此外,在您的Where table.id =表达式中,示例查询中没有任何表名table

答案 1 :(得分:0)

你必须加入这些表格。对此:

from restoredDB.dbo.table_name

添加此

join table_name on restoredDB.dbo.table.ID = table_name.ID

这意味着你可以摆脱这个:

where restoredDB.dbo.table.ID = table_name.ID

答案 2 :(得分:0)

这应该有效:

UPDATE table_name SET table_name.column = restoredDB.dbo.table_name.column FROM table_name 加入 restoredDB.dbo.table_name.column ON table_name.ID = table_name.ID

基于SQL update query using joins

答案 3 :(得分:0)

我认为这应该可以解决问题。

USE [<table_name_DB_Name>]
GO
UPDATE table_name
SET
column = t1.column
From restoredDB.dbo.table_name t1, table_name t2
Where t1.ID = t2.ID