sql 触发器在对一个进行update操作的时候需要与判断另一个表里是否有相同记录

2024-12-16 18:46:48
推荐回答(2个)
回答1:

触发器可以参考下面的,不过我感觉可以创建一个外键更好
create trigger tr_test_id
on test
after update
as
if not exists (select 1 from t1,inserted
where t1.name=inserted.name and t1.id=inserted.id)
begin
print '不允许修改!'
rollback transaction
end

回答2:

两种方法:
一、
update tablea set fieldb=3 where exists(select * from tableb where tablea.fielda=tableb.fielda and tableb.fieldb=tablea.fieldb)
二、
UPDATE TABLEA SET FIELDB=3 FROM TABLEA,TABLEB WHERE TABLEA.FIELDA=TBLEB.FIELDA AND TABLEB.FIELDB=TABLEA.FIELDB