各位射雕英雄:来指点一二 Update多表

elite01 2005-08-24 05:41:28
Q1:涉及用一个表的内容更新另一个表,一定要加From子句吗?
Q2:可不可能用一个Update同时更新多个表呢?比如:用A表的字段更新B表的某字段,并且同时
把B表的某字段更新?
谢谢!:)
...全文
161 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
elite01 2005-08-25
  • 打赏
  • 举报
回复
Sorry!
第二个问题错了
比如:用B表内容更新A表,同时更新B表某字段
elite01 2005-08-25
  • 打赏
  • 举报
回复
MorningTea
你好啊
又看到你了
以前那个部门表问题解决没
MorningTea 2005-08-24
  • 打赏
  • 举报
回复
xiaonvjing(飞扬)讲的很详细,补充而已:
Q1:涉及用一个表的内容更新另一个表,一定要加From子句吗?
肯定是,至少要选出来吧,2表可以关联
UPDATE t
SET t.ColB = t.ColB + s.ColB
FROM t INNER JOIN s ON (t.ColA = s.ColA)

Q2:可不可能用一个Update同时更新多个表呢?比如:用A表的字段更新B表的某字段,并且同时
把B表的某字段更新?
 触发器最好,或者所有操作封装在一个sp,放在transaction里面,要不全部做,否则全部不更新,不过写在sp不算一个Update同时更新多个表呢
foreversoft 2005-08-24
  • 打赏
  • 举报
回复
支持楼上
GRLD8888 2005-08-24
  • 打赏
  • 举报
回复

Q1:涉及用一个表的内容更新另一个表,一定要加From子句吗?

我想这个是一定的,我知道的有两种方法:

update a set column1=newvalues from b where a.id=b.id and b.id=5

或:

update a set column1=newvalues where id = (select id from b where id=1)


Q2:可不可能用一个Update同时更新多个表呢?比如:用A表的字段更新B表的某字段,并且同时

把B表的某字段更新?)

我想这个问题创建触发器来实现:

create trigger uptable2
on a
for update
as
update b set column1=column1+1 where id in (select id from inserted)

-----
QQMagicer 2005-08-24
  • 打赏
  • 举报
回复
Q1:是对的
Q2:前半句没可能,后半句倒是有可能!而且你后半句也不是更新两个表阿,还是更新一个表B
xianggang101 2005-08-24
  • 打赏
  • 举报
回复
没有测试。明天测试一下给答案!
vivianfdlpw 2005-08-24
  • 打赏
  • 举报
回复
yes
no
elite01 2005-08-24
  • 打赏
  • 举报
回复
up

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧