当前位置:首页 » 编程语言 » sql怎么更新两个关联表的值
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql怎么更新两个关联表的值

发布时间: 2022-11-19 13:32:29

A. sqlSERVER中同时更新两表中的数据

如果没有一定的条件非要更新两张表,就用两个UPDATE语句好了,我还没有使用过单纯的直接更新,给你一个关联两个表的语句:
UPDATE titles
SET ytd_sales = titles.ytd_sales + sales.qty
FROM titles, sales
WHERE titles.title_id = sales.title_id
AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

B. 在oracle中怎样用一条sql语句更新两张有主外键关系的表的记录

作者表 A (ID,NAME,AGE,SEX)其中ID为主键,文章表B(ID,AID,ARTICLE)其中ID为主键,AID为外键。如果你希望更新表A中某个作者的ID,并同时更新文章表B中对应的数据,那么写一个触发器:
create or replace trigger "A"
after update
of ID
on A_author
for each row

begin
if (:new.ID<>:old.ID ) then
update B_article set AID = :new.ID where AID = :old.ID;
end if;
end A;

C. 在sql里面如何实现关联表数据的更新

1.建个触发器
2.建立个物化试图(速度快)

CREATE MATERIALIZED VIEW LOG ON name--建立物化视图日志保存在特定的表空间
tablespace users; --指定表空间

drop materialized view name;
create materialized view name--创建物化试图
refresh fast
on commit --在提交后立即刷新
as
select
A.*
from tablename A

D. sql可以两个表一起更新数据吗

如果两个表有关联的话是可以的,比如A表的id和b表的b_id外键关系就可以
update a left join b on a.id = b.b_id set a.name = '',b.name='' (where条件)

E. 使用 sql语句 update 实现更新两张表的数据

update a set a.FName=b.FName from a inner join b on a.MenuID=b.MenuID
通过表a的MenuID找到表b的FName,并将a表的值更改为b表的值

F. sql中 一条update语句如何更新两个表的中数据

可以使用insteadof触发器。
这种触发器就是用来在更新视图的时候同时更新多个表数据的。

G. update sql 两个关联的表

一、当用一个表中的数据来更新另一个表中的数据,T-SQL提供多种写法(下面列出了二种),但建议用第一种写法,虽然传统,但结构清晰。
并且要注意,当用一个表中的数据来更新另一个表中的数据时,二个表一定要有关联!
1.
update t1
set t1.c2 = t2.c2
fro m t2
where t1.c1 = t2.c1
2.
Update t1
set t1.c2 = t2.c2
fro m t1 inner join t2
on t1.c1 = t2.c1
二、FROM 子句中指定的表的别名不能作为 SET column_name 子句中被修改字段的限定符使用。
例如,下面的内容无效:
UPDATE titles
SET t.ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
若要使上例合法,请从列名中删除别名 t 或使用本身的表名。
1.
UPDATE titles
SET ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
2.
UPDATE titles
SET titles.ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

H. sql server 如何同时更新两张有关系的表

可以使用事务,但是只有当两张表都被更新了才会执行成功,否则事务回滚.
例如:
begin tran --开始执行事务
update bb set moneys=moneys-@momeys where ID=@fromID -执行的第一个操作,转账出钱,减去转出的金额
update bb set moneys=moneys+@momeys where ID=@toID --执行第二个操作,接受转账的金额,增加
if @@error<>0 --判断如果两条语句有任何一条出现错误
begin rollback tran –开始执行事务的回滚,恢复的转账开始之前状态
return 0
end
go