日期:2014-05-18  浏览次数:20486 次

excel导入sql,工作簿名称不对
我在查询分析器中写的语句 把excel表导入sql数据库中,下面的语句把1.xls的工作簿“查询”成功导入数据库drawback
INSERT INTO drawback 
  select * 
  FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\1.xls',[查询1$])


但是导入任何一个工作簿名称中间有空格的就提示错误信息如下
INSERT INTO drawback 
  select *
  FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\2.xls',[查询 1$])
*********错误提示*********
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 不包含表 '查询 1'。该表可能不存在,或当前用户没有使用该表的权限。
OLE DB 错误跟踪[Non-interface error: OLE DB provider does not contain the table: ProviderName='Microsoft.Jet.OLEDB.4.0', TableName='查询 1']。
****************************************
我的工作簿名称和导入的语句中是一致的,哪位高手给知道下,为什么有空格就不行了呢????谢谢咯


------解决方案--------------------
你先导入到一个临时表,再从临时表根据要求倒过来。
------解决方案--------------------
直接用MS SQL 自带的数据导入工具,如有空格,也是识别不了的。
------解决方案--------------------
excel 文件,在生成的时候,隐藏/透视表等处理,会将后面没有用到的很多列,填上空字符,所以需要先将这些空格删掉再导