急求:现有两张表T1,T2结构相同想要修改两张表内的数据值SQL语句该怎么写

大哥大姐们哪位知道,急求:现有两张表T1,T2结构相同想要修改两张表内的数据值SQL语句该怎么写
最新回答
三生路

2024-11-25 08:56:49

数据库中两张表数据同步举例
--建立环境

create table table1 (sno varchar(10),sname varchar(10))
create table table2 (sno varchar(10),sname varchar(10))

go

create trigger t_table1 on table1
after delete,insert,update
as
begin
delete from table2 where sno in (select sno from deleted)

if not exists (select 1 from table2 a,inserted i where a.sno=i.sno)
insert into table2
select * from inserted
else
update a set a.sname=i.sname from table2 a,inserted i where a.sno=i.sno
end

go

/**********插入记录************/

insert into table1
select '0001','aa' union all
select '0002','bb' union all
select '0004','dd'

select * from table1
select * from table2

--table1
/*
sno sname
----- -------
0001 aa
0002 bb
0004 dd

--table2
sno sname
------ -------
0001 aa
0002 bb
0004 dd
*/

/********删除记录*************/
delete from table1 where sno='0004'

select * from table1
select * from table2

--table1
/*
sno sname
----- -------
0001 aa
0002 bb

--table2
sno sname
------ -------
0001 aa
0002 bb
*/

/***********更新记录************/
update table1 set sname='cc' where sno='0002'

select * from table1
select * from table2

--table1
/*
sno sname
----- -------
0001 aa
0002 cc

--table2
sno sname
------ -------
0001 aa
0002 cc
*/

/********删除测试**********/

drop table table1,table2
死亡与爱

2024-11-25 11:22:49

用相同的语法(表名不一样),条件,
写2个sql语句,分别修改T1和T2

如果都成功,才提交;否则回滚。
夜莺与鲸

2024-11-25 14:31:25

update语句只能修改一张表的数据,不能同时修改两张表,如果你要修改两张表,还是用2句update才能实现。
清淡夏未央

2024-11-25 14:38:18

update T1
set t1.c1=t2.c1,t1.c2=t2.c2
from t1,t2 where t1.id=t2.id
或者
update t1 set (c1,c2,)= (select c1,c2 from t2 where t1.id=t2.id)
追问
不是选择两表相同ID的 是同时查询两张表内容 修改符合条件的
深秋叶落黄

2024-11-25 11:32:52

update (
select * from 表1
union all
select * from 表2
) set 字段=值
-- 有可能需要as一下,代码没测试
追问
不可以 显示错误:
错误代码 1732,SQL 状态 42000:ORA-01732: 此视图的数据操纵操作非法
我的代码是
update (select * from 仓库1 union all select * from 仓库2 ) set NUM =NUM-1where ID=1
追答
那就不清楚了为何不写2条,然后用事务处理包含呢,写在存储过程里?