本地的Excel文件如何导入到远端服务器的临时表中?
现在我有一个excel文件,我想把里面的数据导入到远端服务器中去,但是那边规定不能修改数据库的结构,只能用临时表,那么请问大家,我怎么才能把excel中的数据导入到远端服务器的临时表中呢?
分享到:
------解决方案--------------------
--64位win7 sql2008r2 64位offiece2010环境下测试通过(其他系统未试过)
--1.本机操作,导入数据(d:\生产计划项目.xls sheet1$)插入到本地数据库的jhxm临时表
delete from jhxm
go
insert into jhxm(hpbh,hpmc,xh,jhxm,scbj,scbz,gzdj,gzjh)
select [零件号],[零件名称],[序号],[计划项目],[是否生产报交],[生产班组],[跟踪的单据],[跟踪的件号] --excl第一行的各个字段名
FROM OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Data Source=d:\生产计划项目.xls;
User ID=Admin;Password=;Extended Properties=Excel 12.0;')...sheet1$
go
--创建远程服务器连接
exec sp_addlinkedserver
@server=N'rmtServer', --给远程服务器起名
@srvproduct=N'',
@provider=N'SQLOLEDB',
@datasrc=N'192.168.0.1,1433' --ip地址和端口号
go
--设置远程服务器的登陆凭证
exec sp_addlinkedsrvlogin
@rmtsrvname=N'rmtServer',
@useself=false,
@locallogin=NULL,
@rmtuser='sa',
@rmtpassword='111111' --sa密码
go
--查看是否连接到了远程服务器
/*
sp_helpserver
go
sp_linkedservers
go
*/
--将本地表数据导入到服务器的数据库库中
INSERT INTO [rmtServer].[BLASP_QC_20130501].[dbo].[jhxm] SELECT * FROM jhxm
GO
--完成之后别忘了移除连接服务器
sp_droplinkedsrvlogin 'rmtServer', null
go
sp_dropserver 'rmtServer','droplogins'
------解决方案--------------------
查询分析器连接之后就可以操作啦
------解决方案--------------------
2个方法
要么临时用OpenDataSource,速度快,一次性的
要么用SSIS,建立ETL包,要定时计划做的,推荐用SSIS。
------解决方案--------------------
DTS 自带工具
------解决方案--------------------
先将本地EXCEL导入本地的SQL,临时表、固定表都无所谓,然后通过链接服务器导入远端服务器的临时表。
或者有权限的话,将EXCEL拷贝到远端服务器,然后使用数据库的DTS功能直接导入。