本地的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'