尚未注册 OLE DB 访问接口 "MSDASQL ",跨数据库同步数据

a496393868 2012-03-12 03:50:47
EXEC sp_addlinkedserver 'NB', '', 'MSDASQL ',NULL,NULL, 'DRIVER={SQL Server};SERVER=192.168.18.240;UID=sa;PWD=P@ssword; '
exec sp_addlinkedsrvlogin @rmtsrvname= 'NB',@useself= 'false ',@locallogin= 'sa',@rmtuser= 'sa',@rmtpassword= 'P@ssword'
GO



select * from NB.NBShop.dbo.T_ProcessTemplate




查询的时候报错,
谁能帮助我
...全文
796 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
z5wjz 2013-05-23
  • 打赏
  • 举报
回复
你的问题很可能就是没有注册MSDASQL接口
z5wjz 2013-05-23
  • 打赏
  • 举报
回复
这个问题我今天也遇到了,但我后来解决了,并且写了篇博客,可以来看看 http://blog.sina.com.cn/s/blog_548c08c80101dgtd.html
a496393868 2012-03-12
  • 打赏
  • 举报
回复
这个东西如何注册,我在网上好像没查到类似的资料[Quote=引用 2 楼 travylee 的回复:]
很明显的提示
[/Quote]
  • 打赏
  • 举报
回复
很明显的提示
dawugui 2012-03-12
  • 打赏
  • 举报
回复
不同服务器数据库之间的数据操作

--创建链接服务器
exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码'

--查询示例
select * from ITSV.数据库名.dbo.表名

--导入示例
select * into 表 from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV' , '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
on a.column1 = b.column1

--openquery用法需要创建一个连接

--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址'
--查询
select *
FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名')
--把本地表导入远程表
insert openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名')
select * from 本地表
--更新本地表
update b
set b.列B=a.列B
FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') as a
inner join 本地表 b on a.列A=b.列A

--3、opendatasource/openrowset
SELECT *
FROM opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').test.dbo.roy_ta
--把本地表导入远程表
insert opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').数据库.dbo.表名
select * from 本地表

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧