/*
作用:采用EXCEL批量更新数据库中的数据
作者:wonder QQ:37036846 QQ群:124766907
时间:2011-03-24 11:37
环境:SQL2005
*/
--1.检测是否可以打开EXCEL中的数据信息
select *from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;IMEX=2;DATABASE=D:\updateData\data.xls',Sheet1$
--2.若报错提示启用OPENROWSET等信息
--打开SQL2005的[配置工具]-[SQL Server 外围应用配置器]进行启用OPENROWSET
--主要是是因为SQL2005增加了安全性。
--OPENROWSET('PROVIDER服务提供商','采用CEXCEL版本,XLS路径','XLS文件的表名')
--3.若发现有些数为NULL,或者不是你XLS文件中的数据,建议,
-- 把所有数据COPY到记事本保存,然后再COPY回EXCEL,
-- 这样保证了EXCEL各单元格中的数据格式编码不准确导致的NULL问题
UPDATE PUR0101 SET FLD0370=b.EL --更新数据
from (select *from--来源数据
OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
'Excel 5.0;HDR=YES;IMEX=2;DATABASE=D:\updateData\data.xls',Sheet1$)
) as b
where PUR0101.Fld0043=b.juanhao--条件
--数据更新的时候最好是在服务器本机上进行。远程连接过去的,貌似我这里没成功。以后再试。