要实现对A表更新,B表也同样更新触发器代码如下
Create Trigger trufqpz             --触发器名称 
On yfqpz                         --在yfqpz表中创建触发器  A表
for Update                          --为什么事件触发 
As                                        --事件触发后所要做的事情 
if Update(fzqk)                           --要更新的字段
begin Update yxinxi                                --要触发的表   B表
Set fzqk=i.fzqk 
From yxinxi br , Deleted   d ,Inserted i      --Deleted和Inserted临时表 
Where br.fzqk=d.fzqkEND
注:
Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。 
一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是: 
虚拟表Inserted                     虚拟表Deleted 开始的时候这个代码有触发作用,后来我再B表也写了个触发器,即B触发,A也触发,发现最后成了间接递归了,于是删除B表的触发器,只留下A表的,发现修改A表可以,但是B表没有同样修改大家帮忙看看啊另外我鼠标光标悬停到 触发器的浅蓝色代码上 显示出 transact-sql intellisense中当前不支持 alter trigger意思大概是说不 支持创建触发器的意思,是不是跟这个也有关系呢??
大家帮忙看看啊,新手分数不多 见谅,就是把遇到的问题拿来大家探讨一下

解决方案 »

  1.   

    alter/*create*/ trigger grade_modify  
        on Tb
        for INSERT
        as
       begin
         select name from inserted--tb表刚刚插入的数据
         你想做的操作   
       end
    给个简单示例,看是否能对你有所启发,这是一个插入触发器,如果tb表有数据插入则会触发
      

  2.   

    create trigger tupdate_yfqpz on a
    for update 
    as if update(fzqk)
    begin
     update b set fzqk=i.fzqk from b,inserted i,deleted d
     where i.fqid = d.fqid
     and i.fzqk <> d.fzqk
     and b.fqid = i.fqid
    end
      

  3.   

    create trigger tupdate_yfqpz on a
    for update ,delete
    as if update(fzqk)
    begin
     update b set fzqk=i.fzqk from b,inserted i,deleted d
     where i.fqid = d.fqid
     and i.fzqk <> d.fzqk
     and b.fqid = i.fqid
    end
      

  4.   

    先在数据库使用SQL脚本更新数据测试你的触发器是否有效的,如果无效,检查触发器,如果有效,查看程序是否执行更新语句是否成功从多个地方去排查问题,你最终会正确的(注:我也是个小菜鸟)
      

  5.   

    将 fzqk改为 唯一约束的 就是类似主键的,不会重复的,以前我也出过类似错误,猜你的fzqk不能唯一确定