SQL Server2008 中,写一个触发器,根据一个表中新插入的记录修改另一个表


SQL Server2008 中,要求写一个触发器在表A每次添加新记录时触发,
若新记录中aa字段的值在表B中ba字段不存在,则修改表B中的另一个字段bb值为表A中的aa的值。 

create trigger tri_test on A after insert
    as if exists(select aa from (select ba from B))
begin    
    update B inner join A where A.id=B.id set B.bb=A.aa;
end 

请问哪里写的不对,应该怎么写? 

菜鸟一枚,第一次发帖,分比较少,大神们见谅!

3 个解决方案

#1


 as if exists(select aa from (select ba from B))
 这句就不对..
 as if exists(select aa from (select ba from B)a) 这么写试试 

#2


create trigger tri_test on A after insert
    as 
begin
declare @count int
select @count=count(*) from inserted t inner join B on t.aa=B.ba

if @count=0
begin    
update B set B.bb=A.aa
from inserted --插入表
where inserted.id=B.id ;
end 
end

#3


lz 你看一下触发器吧
对于insert触发器,对应的inserted 表
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告