使用内连接更新,更新两个表中的 2 列
这是我在 sql server 2008 中的查询 -
UPDATE a
SET a.col2 = 'new',
a.col3 = 'www.google.com',
b.col1 = '10'
FROM table a
INNER JOIN table b ON a.col1 = b.col1
WHERE a.col1 = 7
它崩溃并显示“无效的列名 b.col1”。
我该如何进行这项工作?
This is my query in sql server 2008 -
UPDATE a
SET a.col2 = 'new',
a.col3 = 'www.google.com',
b.col1 = '10'
FROM table a
INNER JOIN table b ON a.col1 = b.col1
WHERE a.col1 = 7
It crashes stating "Invalid column name b.col1."
How do I make this work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
一次只能更新 1 个表,
需要发出 2 条更新语句
You can only update 1 table at a time
you need to issue 2 update statements
仔细观察您的查询,您会发现 UPDATE 语句中有 b.Col1 。这是不正确的
从 UPDATE 您只能更新一次 1 张桌子
From looking at your query a little closer, you have b.Col1 in the UPDATE statement. this is incorrect
From UPDATE you can only update 1 table at a time
您的语句是“更新 A”,并且您正在尝试更新表 B 中的列。您可能想要创建一个包含表 A 和 B 中的列的视图,然后更新该视图。您还可以为表 A 创建触发器 - 也许会更新表 B 中相应的联合列。
Your statement is "Update A", and you're trying to update a column in table B. You might want to create a view containing the columns in tables A and B, and update that. You could also create triggers for table A - perhaps one that will update the appropriate jointed column in table B.
要根据第二个表中另一列的条件更新一个表中的列值,这对我有用:
For updating a column value in 1 table based on a condition on another column in second table, this worked for me: