如何将数据从Excel 2010导入SQL表

时间:2013-11-03 15:36:47

标签: sql excel openrowset

我正在使用它,

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语法出错;检查与您的MySQL服务器版本对应的手册,以便在'''Microsoft.Ace.OLEDB.14.0','Excel 14.0; Database = L:\ SMS.xlsx; HDR = YES','SELECT i'附近使用正确的语法'在第1行

我正在使用excel 2010。

2 个答案:

答案 0 :(得分:0)

就我而言OPENROWSET是一个特定于MSSQL的关键字,你似乎在使用MySQL。将select *FROM OPENROWSET替换为VALUES,你应该好好去:

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]')

答案 1 :(得分:0)

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