Ⅰ sql语句如何将Excel表导入到数据库我要的是SQL语句
在查询分析器里,操作数据库对象选择Lee直接写 SQL语句:
如果是导入数据到现有表,则采用
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
的形式
如果是导入数据并新增表,则采用
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
的形式。
以上语句是将 EXCEL文件里 SHEET1工作表中所有的列都读进来,如果只想导部分列,可以
INSERT INTO 表 (a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
其实可以将 OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)当成一个表,例如我就写过这样一个句子:
INSERT INTO eval_channel_employee(channel,employee_id)
SELECT CASE a.渠道 WHEN 'DIY' THEN 1 WHEN 'RDC' THEN 0 WHEN 'KCM' THEN 2 ELSE 3 END
,b.id FROM
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\temp\name.xls',sheet1$) AS a,pers_employee b
WHERE a.员工编码 =b.code
简单的方法:
SQL2005中直接可以实现导入功能 SQL2008不知道可不可以。
操作过程如下:
第一步:登录到 SQL Server Management Studio,
第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在弹出列表中单击 “导入数据 ”
第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)
第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”
第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。
你试下下面的吧:
打开SQL Server Configuration Manager,启用SQL Server Agent(实例名)。 启动模式更改为“自动”
Ⅱ 如何用SQL语句查询Excel数据
如何用SQL语句查询Excel数据?
Q:如何用SQL语句查询Excel数据? A:下列语句可在SQL SERVER中查询Excel工作表中的数据。
2007和2010版本:
SELECT*FROMOpenDataSource( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="c:\book1.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet1$]
复制代码
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$A1:D100]')
复制代码
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$]')
复制代码
2003版本:
SELECT*FROMOpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]
复制代码
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$]')
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$A1:D100]')
复制代码
而且,还需要用拥有服务器sysa
Ⅲ 怎么把excel文件里的数据导入SQL数据库
导入数据不一定要用OPENSET函数,可以用更简单的方法,步骤如下:
1、首先双击打开sqlserver,右击需要导入数据的数据库,如图所示。
2、点击任务,再点击任务中的导入数据选项,打开导入导出数据向导界面。
3、在向导界面点击下一步,进入下图界面依次填写需要的内容:数据源Excel,文件路径,以及Excel版本,填好后点击下一步(如果Excel其他版本不行的话,就选择Excel97-03的,再将Excel保存为相应版本)即可。
4、然后就是目标数据库设置:目标选择msslserver,服务器名称不用变,身份验证输入相应的密码,数据库选择对应的数据库,设置好后点击下一步。
5、然后来到图示界面,直接默认选项即可,点击下一步。
6、图示界面,可以自定义目标数据库(表在数据库中可以不存在),点击预览即可以看到导入之后的表状态,如图。
7、上一步完成后再继续下一步,最后点击完成,即可导入成功,如图。
8、最后在数据库中检查一下导入的表数据,附上导入的Excel数据为例。
(3)sqlopenrowsetexcel扩展阅读:
导入数据也可使用OPENROWSET函数,但使用该函数之前必须先启用AdHocDistributedQueries服务,因为这个服务不安全所以SqlServer默认是关闭的,系统管理员可以通过使用sp_configure启用'AdHocDistributedQueries'。
但有一个问题一定要特别注意,由于'AdHocDistributedQueries'这个服务存在着较大的安全隐患,所以切记使用完毕之后一定要关闭。
所以,如果是导入数据建议不要使用OPENROWSET函数,弊大于利。