1.insert时,先判断对方表有无数据,没有就插入,有就不插入.
2.update时,判断inserted和deleted中的数据是否有改变,有改变才更新对方表,没改变不更新.
3.delete时,先判断对方表有无数据,没有就不删,有就删.

解决方案 »

  1.   

    CREATE TRIGGER tr_InfoSync on T_Personal_info
    for insert,update, delete
    as
    begin
    insert into openrowset('sqloledb','YUKE';'sa';'sa', TopWinCS.dbo.LeadBBS_User)(
       UserName, Pass)
    select Personal_Name, PWD from inserteddelete a
    from openrowset('sqloledb','YUKE';'sa';'sa', TopWinCS.dbo.LeadBBS_User) a, deleted b
    where rtrim(a.UserName) = rtrim(b.Personal_Name)
    end上面是我的存储触发器,为什么我插入数据时会提示:
    该操作未能执行,因为 OLE DB 提供程序 'sqloledb' 无法启动分布式事务。
    [OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。
    我应该怎么做?