两台数据库服务器,其中触发器建立在数据库A中,当A中的表A01数据发生变化时,要同步到数据库B中的UP01表。我已经建立的相应的数据库连接。具体代码如下:exec   sp_addlinkedserver     'DB_HR','','SQLOLEDB','192.168.1.98' 
exec   sp_addlinkedsrvlogin   'DB_HR','false',null,'sa','123456' 
go 我进行了连接测试,在查询分析器中执行数据插入操作,可以正常完成。随后我又创建了一个触发器,具体代码如下:create trigger A01INSERT
on A01
after insert
as
insert into DB_HR.DB_HR.DBO.UP01(ID, NAME, SEX, ORGID, WEIGHT, UPDATETIME, OP)
select inserted.a00, inserted.a0101, inserted.a0104, inserted.p0139, inserted.p014k, getdate(), 1
from inserted我在查询分析器中对A01表进行了数据的更新操作,但是目标服务器数据库中没有对应的变化,不知道为了什么。请指点迷津。

解决方案 »

  1.   

    你的触发器是插入的,不是更新的。
    改为
    create trigger A01INSERT
    on A01
    after update
      

  2.   

    create trigger A01INSERT
    on A01
    for update
    as
    if update(..)
    begin 
    insert into DB_HR.DB_HR.DBO.UP01(ID, NAME, SEX, ORGID, WEIGHT, UPDATETIME, OP)
    select inserted.a00, inserted.a0101, inserted.a0104, inserted.p0139, inserted.p014k, getdate(), 1
    from inserted
    end
      

  3.   

    create trigger userStr on student
    for insert
    as
    if(update(studentid))
    begin
    update userInfo set studentid=i.studentid
    from userInfo u,deleted d,inserted i
    where u.studentid=d.studentid
    end