首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

跨服务器提取数据失误

2013-08-23 
跨服务器提取数据出错链接服务器(null)的 OLE DB 访问接口 SQLNCLI10 返回了消息 未指定的错误。消息

跨服务器提取数据出错
链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "未指定的错误"。
消息 7330,级别 16,状态 2,第 1 行
无法从链接服务器 "(null)" 的 OLE DB 访问接口"SQLNCLI10"提取行。

执行到10000万多条的时候,一直提示上面的错误。不知道什么原因。

有试过分两批获取数据,分批一开始没问题,但是过一段时间后又提示该错误。请大家帮忙看看。谢谢! 服务器 无法提取行
[解决办法]
你重新创建链接试试看。

exec sp_addlinkedserver   'DB32',   '   ',   'SQLOLEDB',   '192.168.3.x\SQLEXPRESS2008R2'   
exec sp_addlinkedsrvlogin 'DB32',   'false',null,   'sa',   'Glacier2011'   

--查询
select   *   from   链接名称.数据库名.dbo.表名   

--不用后删除
exec   sp_dropserver     'MEDICSCA_2013',   'droplogins'




--连接远程/局域网数据(openrowset/openquery/opendatasource)   
--1、openrowset   

--查询示例   
select   *   from   openrowset(   'SQLOLEDB   ',   'sql服务器名   ';   '用户名   ';   '密码   ',数据库名.dbo.表名)   

--生成本地表   
select   *   into   表   from   openrowset(   'SQLOLEDB   ',   'sql服务器名   ';   '用户名   ';   '密码   ',数据库

名.dbo.表名)   

--把本地表导入远程表   
insert   openrowset(   'SQLOLEDB   ',   'sql服务器名   ';   '用户名   ';   '密码   ',数据库名.dbo.表名)   
select   *from   本地表   

--更新本地表   
update   b   
set   b.列A=a.列A   
  from   openrowset(   'SQLOLEDB   ',   'sql服务器名   ';   '用户名   ';   '密码   ',数据库名.dbo.表名)as   a   inner 



  join   本地表   b   
>exec sp_addlinkedserver @server=’别名’,@provider=’sqloledb’,@srvproduct=’’,@datasrc=’远程服务器IP’ 


远程注册成功:(亲测) 

--exec sp_addlinkedserver '注册名','','SQLOLEDB','远程数据库名' 
--exec sp_addlinkedsrvlogin '注册名','false',null,'用户名','密码' 


[解决办法]
2边都执行: dbcc checktable('[表名]')  看是否有错误.
[解决办法]
加WHERE条件,试着过滤,可能有问题的那些行,是否能正常导出?
[解决办法]
一次操作的数量太多了吧,时间太长也会有问题。

热点排行