日期:2014-05-17  浏览次数:20667 次

本地的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功能直接导入。