【发布时间】:2011-09-02 09:44:46
【问题描述】:
可能重复:
How to update two tables in one statement in SQL Server 2005?
我有一个更新声明。它更新一个字段,但在另一个表上进行内部连接以完成 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”。
任何帮助将不胜感激。
【问题讨论】:
-
您正在为表格提供别名,但不要使用它们。要么你在这里发帖时弄坏了东西,要么你永远不会让系统税工作。我也不确定是否可以在一个语句中更新多个表,但这是我至少可以立即发现的一件事。
-
我在集合上提供完全限定的别名,因为它不会在 from 上提取别名。
-
看我的回答,我经常这样问我数不清了。但是从未尝试过更新多个表,但可以立即工作......不确定。
标签: sql sql-update inner-join