可能重复:
How to update two tables in one statement in SQL Server 2005?更新2表中的一个声明(MS SQL)
我有一个更新语句。它更新另一个表上的一个字段,但内部联接以完成where子句。我正在使用MS SQL。
我现在试图更新连接表上的字段,但似乎无法做到这一点。我已经读过,你一次只能更新一张表。这是真的?有没有办法解决这个问题?
这里是我的发言
update tbl_calendardatebox
set
tbl_calendardatebox.HeaderBgColour = @value,
tbl_calendarobjects.Saved = '0'
from tbl_calendardatebox db
inner join tbl_calendarobjects o on
db.ObjectId = o.Id
where o.PageId = @page
and o.GroupField = @group and o.GroupField <> '-1'
and o.Visible = '1'
and o.CanUserEdit = '1'
and db.HeaderBgColour <> @value
所以这两个表是tbl_calendardatebox和tbl_calendarobjects。我在tbl_calendarobjects.Saved ='0' - 上收到错误消息无法绑定多部分标识符“tbl_calendarobjects.Saved”。
任何帮助将不胜感激。
你给表的别名,但不使用它们。当你在这里发布信息时你或者破坏了某些东西,或者你从来没有得到systax的工作。我也不确定是否可以在一个声明中更新多个表格,但这是我至少能够立即发现的一件事。 –
我给集合上的完全限定的别名,因为它不会从中获取别名。 – tmutton
看到我的答案,我已经做出了这样的疑问,所以我经常失去数。然而,从来没有尝试更新多个表,可以立即工作,但...不知道。 –