SQL从Excel导入数据

简介:在SQL数据库中设置环境并使用OPENROWSET从Excel表中导入数据至数据库。

1.技巧背景

在使用SQL数据库的时候,我们有时候需要从Excel导入数据到数据库,一般我们可以使用软件自带的导入向导对数据进行导入,但在一些自动化操作中,我们需要使用代码对数据进行导入。

2.环境部署

2.1 设置SQL Server服务

1、使用Win+R调出运行窗口,输入services.msc后点击确定,打开服务窗口;

2、在服务窗口找到SQL Server (MSSQLSERVER),点击右键,属性,弹出属性设置框。

3、在属性设置框找到登录选项卡,把登录身份设置为本地系统帐户后,点击确定。

2.2 安装数据库引擎程序包

数据库引擎可再发行程序包:下载地址
下载完成后根据指示安装即可。

重要步骤

完成2.1及2.2步骤后请重启电脑。

3.OPENROWSET 语法

3.1 SQL环境设置

使用OPENROWSET函数直接从 Excel 导入数据库,这种方法称为“分布式查询”。在使用分布式查询前,必须先启用ad hoc distributed queries服务器配置选项。
请先在软件中执行以下代码:

1
2
3
4
5
6
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

3.2 OPENROWSET 语法

以下代码示例使用OPENROWSET,查询Data.xlsx工作簿中的Sheet1工作表的数据。

1
2
3
SELECT
*
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0; Database=C:\Users\Administrator\Desktop\Data.xlsx', [Sheet1$])

以下代码示例使用OPENROWSET,导入Data.xlsx工作簿中的Sheet1工作表的数据到Data_sql数据库表中。

1
2
3
4
SELECT
*
INTO Data_sql
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0; Database=C:\Users\Administrator\Desktop\Data.xlsx', [Sheet1$])

4. 参考资料

微软官方文档:https://docs.microsoft.com/zh-cn/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=sql-server-ver15#openrowset