我在本地excel导入到本地服务器中执行:
insert into 表 select * from openrowset('MicroSoft.Jet.OleDB.4.0','Excel5.0;HDR=yes;Database=f:\aa.xls','select * from [sheet1$]')
没有问题,但我现在想把本地excel导入到远程服务器中,语句如何改?
我在本地登陆远程服务器,执行sql语句
insert into 表 select * from openrowset('MicroSoft.Jet.OleDB.4.0','Excel5.0;HDR=yes;Database=f:\aa.xls','select * from [sheet1$]')
没有问题,但我现在想把本地excel导入到远程服务器中,语句如何改?
我在本地登陆远程服务器,执行sql语句
首先将你要导入的Excel文件上传到远程服务器上,在调用上面的语句
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
select *from 本地表
select * from openrowset('MicroSoft.Jet.OleDB.4.0','Excel5.0;HDR=yes;Database=f:\aa.xls','select * from [sheet1$]')
--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go--查询示例
into srv_lnk.数据库名.dbo.表名
select ........
服务器: 消息 7403,级别 16,状态 1,行 1
未能找到 OLE DB 提供程序 'SQLOLEDB ' 的注册表项。
OLE DB 错误跟踪[Non-interface error: Provider not registered.]。
有错误提示:
服务器: 消息 7403,级别 16,状态 1,行 1
未能找到 OLE DB 提供程序 'SQLOLEDB ' 的注册表项。
OLE DB 错误跟踪[Non-interface error: Provider not registered.]。
先将文件上传到远程服务器,再用sql语句上传到数据库
EXEC sp_addlinkedserver 'servername', N'SQL Server'
exec sp_addlinkedsrvlogin 'servername','false',null,'sa','密码'; insert servername.数据库名.dbo.表(字段...)
select * from openrowset('MicroSoft.Jet.OleDB.4.0','Excel5.0;HDR=yes;Database=f:\aa.xls','select * from [sheet1$]')drop 链接服务器
我登陆远程服务器时,调用以上语句时,执行的f:\aa.xls却是远程机器上的路径,我想掉用本地f:\aa.xls导入到远程服务器
用sql语句实现会比较慢,还不如先上传文件到服务器,再导入快
唉,求高人解答阿~~
insert into openrowset('sqloledb','远程服务器名';'sa';'sa',数据库名.dbo.表名)
select * from openrowset('MicroSoft.Jet.OleDB.4.0','Excel 5.0;HDR=yes;Database=f:\aa.xls','select * from [sheet1$]')登陆本地服务器执行sql语言