--可以但不限于使用触发器
--不知道你所谓的“写入”是指插入还是更新
create trigger tri_tb1 on tb1
for update
as
if update(A)
update tb2
set B=d.A
from deleted d
where tb2.id=d.id
go
--不知道你所谓的“写入”是指插入还是更新
create trigger tri_tb1 on tb1
for update
as
if update(A)
update tb2
set B=d.A
from deleted d
where tb2.id=d.id
go
create trigger tri_tb1 on tb1
for update
as
if update(A)
insert tb2(B) select A from deleted
go
1:你可以在修改语句之前加一句
insert into tb2(B)
select A from tb1 where 条件 A<>'A'(更改的A)
for update
as
if exists(select 1 from tb1 a join inserted b on a.id = b.id and a.字段A <> b.字段A)
insert tb2 select * from inserted
insert into tb1 select 2 union all select 3
create table tb2(colb int)
go
create trigger tg1
on tb1
after update
as
insert into tb2(colb) select cola from deleted a where not exists(select 1 from inserted where cola=a.cola)
go
update tb1 set cola=5 where cola=2
update tb1 set cola=3 where cola=3
go
select * from tb1
select * from tb2
go
drop table tb1,tb2
/*
cola
-----------
5
3(2 行受影响)colb
-----------
2(1 行受影响)*/
for update
as
if update(A)
insert tb2(B) select A from inserted
godeleted表 存的就是表1更新之前的内容, inserted表 存的才是更新之后的内容。