--假如你的ID字段是主键,或有唯一约束。 alter trigger trTest on test for update, delete as declare @id int set @id = 123 if exists ( select 1 from deleted where id = 123 ) update [某表]...
--alter -> create create trigger trTest on test for update, delete as declare @id int set @id = 123 if exists ( select 1 from deleted where id = 123 ) update [某表]...
谢谢! if exists ( select 1 from deleted where id = 123 )---是表示什么? 我要的是:如果表test0中id=123的记录的title和content字段被改变,另一表test1的word和link字段也同时变化. 不存在删除ID=123的记录的问题,只做update触发就可以了.
建立测试环境: insert a select 1,'a' union all select 2,'b' union all select 3,'c' select * from a insert b select 1,'a1' union all select 2,'b1' union all select 3,'c1'select * from a select * from bcreate trigger tr1 on a for update as if update(type) begin if exists (select * from deleted where id=2 and type='b') begin update b set name='bb1' where id in (select id from inserted) end end
alter trigger trTest on test for update, delete as declare @id int
set @id = 123
if exists ( select 1 from deleted where id = 123 )
update [某表]...
create trigger trTest on test for update, delete as declare @id int
set @id = 123
if exists ( select 1 from deleted where id = 123 )
update [某表]...
if exists ( select 1 from deleted where id = 123 )---是表示什么?
我要的是:如果表test0中id=123的记录的title和content字段被改变,另一表test1的word和link字段也同时变化.
不存在删除ID=123的记录的问题,只做update触发就可以了.
insert a select 1,'a'
union all select 2,'b'
union all select 3,'c'
select * from a insert b select 1,'a1'
union all select 2,'b1'
union all select 3,'c1'select * from a
select * from bcreate trigger tr1
on a
for update
as
if update(type)
begin
if exists (select * from deleted where id=2 and type='b')
begin
update b set name='bb1' where id in (select id from inserted)
end
end
表示是否存在,如果找到一笔纪录就是true,往下的模块就会执行,注意如果是null集合也是当存在,所以用这个也要确认不会出现没有还跑出一个null纪录来 FYI
我只要改条记录被改变时触发update另一表,其他的不触发.
是的,你可以这样写,没有问题
是的,你可以这样写,没有问题
----------------------
不行的