触发器里不能识别4层的像[192.168.0.8].SMS.dbo.SMS_Send

解决方案 »

  1.   

    建一个存储过程
    create proc test
    as
    insert into  [192.168.0.8].SMS.dbo.SMS_Send(SERVICEID) values('TQ')
    go在触发器中执行存储过程exec test
      

  2.   

    建这个存储过程我想过了。但语法没有错误。但确定的时候弹出这样一个错误:
    错误类型:7405,异类查询要求为连接设置ANSI_NULLS和ANSI_WARNINGS选项……
      

  3.   

    过程里要加上 
    SET ANSI_NULL_DFLT_ON on //注意SET ANSI_WARNINGS on  /
      

  4.   

    请在查询分析器中创建这个存储过程,以后这个存储过程在企业管理和查询分析器都能修改了。  
     
    对于存储过程,SQL  Server  使用最初创建存储过程时的  SET  ANSI_NULLS  设置值。无论随后何时执行存储过程,SET  ANSI_NULLS  的设置都还原为其最初使用的值并生效。当在存储过程内唤醒调用  SET  ANSI_NULLS  时,其设置不更改。  
     
    在执行分布式查询时应将  SET  ANSI_NULLS  设置为  ON。  
     
    在执行分布式查询时应将  ANSI_WARNINGS  设置为  ON。  
     
    企业管理中的ANSI_NULLS和ANSI_WARNINGS选项不对,但没有方法改动。在查询分析器可以设置ANSI_NULLS和ANSI_WARNINGS选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。就是:
    create proc 名
    as
    SET ANSI_NULL_DFLT_ON on --注意
    SET ANSI_WARNINGS on select * from open...
      

  5.   

    -------------------启动分布式事务------------------------------
    本地和远程都需要启动
    DISTRIBUTED TRANSACTION COORDINATOR服务。
      

  6.   

    set  XACT_ABORT on
    SET ANSI_NULL_DFLT_ON on --注意
    SET ANSI_WARNINGS on
      

  7.   

    但这样的问题是。还是不能通过触发器来调用啊。!可以直接在查询分析器里 exec,但在触发器里,当exec 过程的时候,还是会报同样错误。
      

  8.   

    DISTRIBUTED TRANSACTION COORDINATOR服务都已经启动。
      

  9.   

    我非常同情你,我曾经试图在触发器中调用系统SP未果,但是在查询分析器中是可以的,最后没办法了,只好在自己的SP中调用系统SP了,珍重!