2013-11-03 53 views
0

我用这,如何从Excel 2010中的数据导入到SQL表

Insert into smst 
(id,mobile,day,month,year,time,model,imie1,imie2,FullMessage) 
select * 
FROM OPENROWSET 
('Microsoft.Ace.OLEDB.14.0','Excel 14.0;Database=L:\SMS.xlsx;HDR=YES' 
, 'SELECT id,mobile,day,month,year,time,model,imie1,imie2,FullMessage 
FROM [Sheet2]') 

能否请您帮助查找错误?

SQL错误:

1064 - 你在你的SQL语法错误; ('Microsoft.Ace.OLEDB.14.0','Excel 14.0;数据库= L:\ SMS.xlsx; HDR = YES','选择我'时使用正确语法对应的MySQL服务器版本的手册“在1号线

我使用Excel 2010中

回答

0

就我个人而言OPENROWSET是特定MSSQL关键字,你似乎在使用MySQL更换select *FROM OPENROWSETVALUES,你应该是好去:

Insert into smst 
(id,mobile,day,month,year,time,model,imie1,imie2,FullMessage) 
VALUES ('Microsoft.Ace.OLEDB.14.0','Excel 14.0;Database=L:\SMS.xlsx;HDR=YES', 
'SELECT id,mobile,day,month,year,time,model,imie1,imie2,FullMessage 
FROM [Sheet2]') 
+0

值和选择在相同的插入查询?除非这是MySQL的特性,否则它通常不是有效的sql。 –

+0

请注意,“SELECT id [..]”是一个文字,实际上并不是查询本身的一部分。 –

+0

感谢丹和西蒙, 是你的权利,我用我的SQL, 亲爱的,其实, 我有一个Excel数据文件,我在MYSQL工作, 现在的问题是!这个Excel文件每天自动接收500个条目。并且我想通过替换文件excel文件自动更新SQL表。 什么可能是最好的方式,请用示例建议 谢谢 Saleem – Kunwar

0

您是否尝试过使用SQL数据导入向导在SQL Server中右键单击数据库并选择任务 - >导入,并按照提示进行操作?您需要选择Excel作为源,并根据需要创建新表,将行附加到现有表,或者针对电子表格编写自定义查询。如果创建一个新表格时要小心数据类型,因为向导将尝试根据前100条记录来最好地猜测数据类型,但您可以通过向导覆盖此数据类型以适应您需要的任何数据类型。