34,590
社区成员
发帖
与我相关
我的任务
分享
if OBJECT_ID('A') is not null
drop table A;
go
create table A (id int identity, c char(1));
go
insert into A (c) values('A');
go
create trigger trg_update_a on A
for update
as
-- 禁用 B 上的触发器
execute('disable trigger trg_update_b on B');
with t as(
select d.c dc,i.c ic from inserted i, deleted d where i.id=d.id
)
update b set b.c=t.ic
from b,t
where b.c=t.dc;
-- 启用 B 上的触发器
execute('enable trigger trg_update_b on B');
go
if OBJECT_ID('B') is not null
drop table B;
go
create table B (id int identity, c char(1));
go
insert into B (c) values('A');
go
create trigger trg_update_b on B
for update
as
execute('disable trigger trg_update_a on A');
with t as(
select d.c dc,i.c ic from inserted i, deleted d where i.id=d.id
)
update a set a.c=t.ic
from a,t
where a.c=t.dc;
execute('enable trigger trg_update_a on A');
go
update A set c='B' where id=1;
update B set c='A' where id=1;
select * from A;
select * from B;