我用sql server 2000已經連上了ORACLE的數據庫,(用linked server連接的),現在用sql server 2000的查詢分析器
可以看見ORACLE的數據庫裡面的表,也可以用select查看表的內容.
用 insert into TEST..TESTUSER.TEST values ('test','test')的時候,也可以直接往 ORACLE裡面插入數據現在要做的就是每次往sql server 2000的表test1裡面新增一筆數據的時候,希望這筆數據也能錄入ORACLE數據庫的表TEST2中(兩個表結構相同)
我在表test1上寫了一個觸發器testTri,內容如下:
CREATE TRIGGER testTri  ON
test1 
FOR INSERT
AS
declare @a varchar(15),
        @b varchar(15)
select @a=a,@b=b from inserted
insert into TEST..TESTUSER.TEST values(@a,@b)但是鬱悶的是把insert into test1 values ('test','test') 的時候就出錯
出錯提示如下:Server: Msg 7391, Level 16, State 1, Procedure testTri, Line 8
該操作未能執行,因為OLE DB 提供程序 'MSDASQL'無法啟用分布式事務
[OLE/DB provider returned message: [Microsoft][ODBC driver for Oracle]Driver not capable]既然單獨用insert可以插入數據,為伸麼寫在觸發器裡面就不可以呢/??
我用的操作系統是win 2000 server      MADC的版本是2.8的

解决方案 »

  1.   

    無法啟用分布式事務
    如果你在过程中写begin transaction insert into TEST..TESTUSER.TEST(..)  也会出现这样的情况的.把插入放在一个过程中,然后当插入sql server表的时候,同时执行过程插入oracle数据库.
      

  2.   

    Microsoft ODBC driver for Oracle 不支持分布式事务,必须用Oracle odbc driver或oracle ole db provider
      

  3.   

    to  dinya2003(最近比较忙..) 能不能给个大概的代码出来啊谢谢
     to : drabit(square) 那些驱动是不是还要去下载??