小弟以前从未做过远程数据库操作,现在遇到了一个项目.需求极其简单.就是将本地表中的数据插入到远程数据库中.我在SQL的查询分析器中,能够实现将远程表中的数据插入到本地表,语句如下:
SELECT *
FROM OPENROWSET('MSDASQL','DRIVER={SQL Server};SERVER=218.93.249.197;UID=hy;PWD=123',
hzyl.dbo.hy_fpmx)
但是我实现不了将本地数据插入到远程表中.
查询分析器报错!
"服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB provider 'MSDASQL' reported an error.
[OLE/DB provider returned message: 不支持对 BLOB 值执行基于查询的插入或更新操作。]"
不懂啥意思?
---------------------------------------------------------------
要先注册一下吧,这个语句在局域网中我试过可以了,不知道广域网行不行?
exec sp_dropserver 'srv_lnk','droplogins'
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务名'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
SELECT *
FROM
远程服务名.dbo.hy_fpmx
---------------------------------------------------------------
--驱动程序的问题,改种方式即可
insert OPENROWSET('sqloledb','218.93.249.197';'hy';'123',
hzyl.dbo.hy_fpmx)
select * from hzyl.dbo.hy_fpmx