create trigger trig_update_UserAccounts on UserAccounts
for update
as
update a set eric_password = i.password from eric_manager a 
inner join inserted on a.eric_manager = i.user
GO

解决方案 »

  1.   

    抱歉,更正一下,inserted忘加了表别名i:
    create trigger trig_update_UserAccounts on UserAccounts
    for update
    as
    update a set eric_password = i.password from eric_manager a 
    inner join inserted i on a.eric_manager = i.user
    GO
      

  2.   

    表 UserAccounts :        user  password
    记录1   张三  123
    记录2   。表 eric_manager:
          eric_manager  eric_password
    记录1   张三        123
    记录2   。要改 123为456
    怎么能让他改一个表里的数据,另一个跟着改。
      

  3.   

    create trigger trig_update_UserAccounts on UserAccounts
    -----------------------------------------------------------------
    只是在UserAccounts表上创建了一个名称为trig_update_UserAccounts的更新触发器.不是二个触发器,只要在UserAccounts表上建一个UPDATE触发器就可以了.
      

  4.   

    > 要两个触发器么?
    > 我想只要改一个就另一个跟着改是的,两个表都要分别建触发器create trigger tr_UserAccounts_upd on UserAccounts
    for update
    as
        update eric_manager
         set eric_password = i.password 
         from eric_manager a, inserted i 
         where a.eric_manager = i.user
    GOcreate trigger tr_eric_manager_upd on eric_manager
    for update
    as
        update UserAccounts
         set password = i.eric_password 
         from UserAccounts a, inserted i 
         where a.user = i.eric_manager
    GO
      

  5.   

    如果楼主希望修改eric_manager表的password同时更新UserAccounts的密码,请采用楼上朋友的方案.
      

  6.   

    1、一般来说,用户名是不允许修改的,不过最好坐下判断
    create trigger tr_UserAccounts_upd on UserAccounts
    for update
    as
    IF UPDATE (password)
        update eric_manager
         set eric_password = i.password 
         from eric_manager a, inserted i 
         where a.eric_manager = i.user
    GOcreate trigger tr_eric_manager_upd on eric_manager
    for update
    as
    IF UPDATE (eric_password)
        update UserAccounts
         set password = i.eric_password 
         from UserAccounts a, inserted i 
         where a.user = i.eric_manager
    GO2、两个触发器就必须防止循环触发,方法如下:
    USE master
    EXEC sp_configure 'nested triggers', '0'
    GORECONFIGURE
    GO