在server1上的查询分析器中执行 
 drop proc xxx
然后再执行
  set   ANSI_NULLS     on   
  set   ANSI_WARNINGS  on   
  go   
create  proc  xxx
as
 begin
   insert into server2.数据库名.dbo.表名
    (jj,bb)
   select a.jj,b.bb from 表名1 a,表名2  b where a.id=b.id  
 end   后  在server1上用DELPHI写的程序读xxx 存储过程  结果还是报 
异类查询要为连接设置 ANSI_NULLS 和ANSI_WARNINGS 选项.这将确保一致的查询语义,请启用这些选项,然后重新发出查询
这个错误信息!

解决方案 »

  1.   

    再加上一条 在提示 "异类查询要为连接设置 ANSI_NULLS 和ANSI_WARNINGS 选项.这将确保一致的查询语义,请启用这些选项,然后重新发出查询" 这个错误后 点确定  又有一个错误
    view1: Cann't perform this operation on a closed dataset.
      

  2.   

    view1: Cann't perform this operation on a closed dataset. 这个错误 已解决!
    不是存储过程的问题 !
      

  3.   

    一夜未睡,找到答案    在server1数据库上 右键-> 属性->连接 中 将ANSI_NULLS 和ANSI_WARNINGS 都选上就解决了问题!    这个问题解决了可是又出了新问题!
    考虑 是insert 语句 所以就要考虑加上事物   也就是分布式事物处理 .server1和server 2都打开了 ms dtc 服务 
    (我的 操作系统是 winxp pro  sp2   SQL2000 PRO  )  我的存储过程如下
    CREATE  proc xxx
    as
    begin   distributed tran  insert into server2.数据库.dbo.库表名
    (jj,bb)
    SELECT a.jj,b.bb
    FROM 表1 a,表2 b   where a.id=b.id  select  '倒数据成功!!' as '提示' if   @@error   =   0   
      commit   tran   
      else   
      rollback   tran
    在server1 的查询分析器中执行 exec xxx  提示:服务器: 消息 7391,级别 16,状态 1,过程 UP_FD_SCSJ,行 29
    该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
    [OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
    OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
      

  4.   

    这一晚上没白熬啊! 这个问题有功克了  先不着急睡觉 把解决方法告诉大家先!我的环境是 server1  操作系统是 xp pro  sp2    SQLSERVER pro SP4   所在的组是 admi  
              SERVER2  操作系统是 win2003 server SQLSERVER 企业版     所在的组是 admi我在server1上 
    第一:
     控制面板->管理工具->组件服务->  组件服务->计算机->我的电脑  右键我的电脑 
     ->属性->MSDTC->安全性配置   选择 远程DTC访问、允许远程客户端、允许远程管理、允许入站、
    允许出站、不要求进行验证
    第二: 
     在SQLSERVER 中将 自动运行ms dtc(d) 选上    否则每次开机或重起都要去启动MSDTC 在server2上
    第一:打开“管理工具”的“组件服务”。
        a. 浏览至"启动管理工具"。    b. 选择"组件服务"。    c. 展开"组件服务"树,然后展开"我的电脑"。    d. 右键单击"我的电脑",然后选择"属性"。     在 MSDTC 选项卡中,确保选中了下列选项: 
        网络 DTC 访问 网络管理 网络事务XA 事务
       另外,"DTC 登录帐户"一定要设置为"NT Authority\NetworkService"。4、重启MS DTC服务。
    第二: 在SQLSERVER 中将 自动运行ms dtc(d) 选上    否则每次开机或重起都要去启动MSDTC
    这样我的分布式事务就可以正常执行了,结果OK! 如果哪里交代的不清楚 请见谅啊 ,一晚上没睡了 头有点晕