天下第二博

Tian Xia The Second BO
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  公司数据库升级成SQL2005了,原来的SQL2000数据库直接附件上去后,发现添加数据的时候报SQL错误“请执行sp_addlinkedserver 将该服务器添加到sysserver解决办法”。在网上找了好多文章,都说需要执行sp_addlinkedserver 这个存储教程,要在执行SQL命令的SQL Server器上进行设置,于是赶紧查看关于sp_addlinkedserver 系统存储过程的资料,但细分析,原其实还有更简便的方法,不需要在SQL查询分析器中执行任何查询的查询存储过程。
       以下是我总结的两个解决系统报“在sysservers 中找不到服务器 'www.Supidea.com'。请执行sp_addlinkedserver 将该服务器添加到sysservers。”的方法。

       解决方法1:(Supidea.com 强烈推荐)
       对于SQL Server可以采用“SQLOLEDB”作为@provider,也就是说只要修改一下连接语句就好了。
       原来的SQL连接语句为:ConnData="driver={SQL Server};server=www.supidea.com;uid=www.supidea.com;pwd=supidea.com;database=Supidea"
       修改使用“SQLOLEDB”作为@provider的连接语句为:ConnData="Provider=SQLOLEDB.1;Persist Security Info=false;server=www.supidea.com;uid=www.supidea.com;pwd=supidea.com;database=supidea"
       
简单点说:也就是把连接语句中的driver={SQL Server}”换为Provider=SQLOLEDB.1;Persist Security Info=false;就可以了
       
       解决方法2:
      
       还有一种方法说那便使用执行下面的存储过程来解决,但因看上去比较麻烦,所以不推荐。
       EXEC sp_addlinkedserver 
          @server = 'www.supidea.com', 
          @provider = 'MSDASQL',
          @provstr = 'DRIVER={SQL Server};SERVER=www.supidea.com;UID=sa;PWD=www.supidea.com;'
        --@server是以后执行SQL命令时引用的服务器名,它可以任意命名,不一定需要与真实SQL Server服务器同名。
        --@provider请按资料表格中提供的参数给定。

        如果上面说明的请执行sp_addlinkedserver 将该服务器添加到sysserver解决办法都不能解决您遇到的问题,那可能就是SQL数据库的问题了,您可能需要重装SQL来解决此问题

       总结:
       在写SQL连接语句的时候,尽量使用“SQLOLEDB”作为@provider来连接:“Provider=SQLOLEDB.1;Persist Security Info=false;”,这样的连接语句感觉比“driver={SQL Server}”
的兼容性能要来的稳定。
       本博原创文章,转载请注明文章来源Supidea.com请执行sp_addlinkedserver 将该服务器添加到sysserver解决办法