exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, '用户名 ', '密码 ' 
我在存储过程中调用似乎不行异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。

解决方案 »

  1.   

    SET ANSI_NULLS OFF
    SET ANSI_WARNINGS OFF
      

  2.   

    可以动态执行,传参数declare @ip char='10.10.10.1'
    exec( 'exec sp_addlinkedserver ''ITSV '', '' '', ''SQLOLEDB'','''+@ip+ '''')
      

  3.   

    多谢楼上,这样的办法我也想到了,那还不如不创建链接,直接使用openrowset,opendatasource
      

  4.   

    SET ANSI_NULLS ON
    SET ANSI_PADDING ON
    SET ANSI_WARNINGS ON
    SET CONCAT_NULL_YIELDS_NULL ON
    SET NUMERIC_ROUNDABORT OFF
    SET QUOTED_IDENTIFIER ON
    SET ARITHABORT ON
    把这些都写到存储过程里
      

  5.   

    该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
    [OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]查询分析器里面好好的,存储过程就不行
      

  6.   

    楼主  exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '  
    exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 
    这里ITSV 是指的服务器吗