--启动远程服务器的MSDTC服务    
   exec   master..xp_cmdshell   'isql /S"REC_FAX-DEMOSVR"/U"sa"/P""/q"exec master..xp_cmdshell''net start msdtc'',no_output"',no_output    
      
   --启动本机的MSDTC服务    
   exec   master..xp_cmdshell   'net   start   msdtc',no_output 
   --建立远程服务器连接 
   exec sp_addlinkedserver   'REC_FAX-DEMOSVR', 'TriggerTest','SQLOLEDB','172.16.2.215' 
   --建立远程服务器登陆 
   exec sp_addlinkedsrvlogin   'REC_FAX-DEMOSVR','false', null,'sa','' 
   --调用连接服务器上的存储过程  
   exec sp_serveroption   'REC_FAX-DEMOSVR','rpc out','true'   先要确认慢在那里,这段如果直接执行响应如何?另外,类似操作用触发器不合适

解决方案 »

  1.   

    试试不用分布式事务,直接执行远程存储过程有没有问题 exec [REC_FAX-DEMOSVR].TriggerTest.dbo.sp_BOCInsertQueueCallData @eduid,@queuenum,@queuetime 
      

  2.   


    我的触发器如下,可是在我插入一条记录进行测试的时候执行起来超慢,请各位高手帮忙看看是不是有什么问题,敬请期待!! 
    create  trigger fraz 
    on FaxRevLog 
    for insert 
    as 
       --把XACT_ABORT 设置为ON 
       set xact_abort ON  
       --启动远程服务器的MSDTC服务    
       exec   master..xp_cmdshell   'isql /S"REC_FAX-DEMOSVR"/U"sa"/P""/q"exec master..xp_cmdshell''net start msdtc'',no_output"',no_output    
          
       --启动本机的MSDTC服务    
       exec   master..xp_cmdshell   'net   start   msdtc',no_output 
       --建立远程服务器连接 
       exec sp_addlinkedserver   'REC_FAX-DEMOSVR', 'TriggerTest','SQLOLEDB','172.16.2.215' 
       --建立远程服务器登陆 
       exec sp_addlinkedsrvlogin   'REC_FAX-DEMOSVR','false', null,'sa','' 
       --调用连接服务器上的存储过程  
       exec sp_serveroption   'REC_FAX-DEMOSVR','rpc out','true'   
    BEGIN   DISTRIBUTED   TRANSACTION   
     declare @eduid char(33) 
     declare @queuenum varchar(20) 
     declare @queuetime datetime 
     select @eduid=Task_id,@queuenum=Box_ID,@queuetime=Rev_Starttime from Inserted  exec [REC_FAX-DEMOSVR].TriggerTest.dbo.sp_BOCInsertQueueCallData @eduid,@queuenum,@queuetime 
     commit   tran    
      go