怎么定时自动将SQL数据导出为Excel文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么定时自动将SQL数据导出为Excel文件相关的知识,希望对你有一定的参考价值。

1、编写SQL存储过程(procedure);
2、使用SQL的BCP与exec master..xp_cmdshell命令完成指定数据表或内容导出;
3、使用SQL Server代理作业实现定时自动执行导出。
下面是过程详解,若你还有更好的方式,盼告知。

工具/原料

SQL Server Management Studio
BCP与exec master..xp_cmdshell
方法/步骤

1
Create一个新的procedure,在开头可以做一个判断来决定什么时候执行数据结果导出,下面来看看这个存储过程:
Create procedure [dbo].[pr_Dept_Bak]

as
begin
---这里可以增加对数据表的查询条件或更多的数据处理;
---将结果放入一个新的数据表,然后将这个新表导出EXCEL文件;
declare @file_path varchar(200);--导出EXCEl文件的路径;
declare @file_name varchar(200);--导出EXCEl的文件名;
declare @exec_sql varchar(200);--SQL语句;
---分开定义是为了以后修改路径或文件名更方便。
set @file_path = \'E:\\Dept_Bak\\\'
set @file_name = \'dept\' + CONVERT(varchar(100), GETDATE(), 112)+\'.xls\'
set @exec_sql = \'select * from book.dbo.users_dept\' ---数据表使用的完整路径;
set @exec_sql = \' bcp "\'+@exec_sql+\'" queryout "\'+@file_path+\'\'+@file_name+\'" -c -T -U "sa" -P "SQLpassword"\';
----U "sa" -P "SQLpassword" 这是数据库的sa账号和密码;
exec master..xp_cmdshell @exec_sql
end

2
以上存储过程pr_Dept_Bak建立,需要导出的数据表是users_dept,导出的位置是数据库本地计算机的E:\\Dept_Bak文件夹下。需要将这个文件夹建立好。

3
准备好之后,我们需要进行测试一下pr_Dept_Bak是否成功,执行pr_Dept_Bak存储过程,可以看到执行结果是成功的,若这里不成功,则需要检查一下带存储过程中的BCP与exec master..xp_cmdshell命令的格式是否正确。

4
导出功能实现了,现在需要设置定时自动执行导出。在SQL Server Management Studio中,SQL Server代理-作业-新建作业。

5
为新的作业设定名称,可以中文或英文,只是为了方便区分其它作业。

6
在步骤中,点击新建作业执行步骤。即需要定时自动执行的存储过程pr_Dept_Bak。为什么使用的存储过程,也是因为以后需要添加或修改功能更方便,而且存储过程更文件测试问题所在。

7
注意选择数据库,命令中输入exec pr_Dept_Bak 执行存储过程。因为命令语句都在存储过程中,所以这里就相对比较简单。

8
最后就是设定定时自动执行计划,如每天的XX时间自动执行这个存储过程,或间隔多少小时导出SQL表一次。

9
作业建立之后,则可以执行作业步骤来测试一次,是成功,右键点击建立的作业pr_Dept_Bak,作业开始步骤。

10
作业成功,若不成功,可以看到错误提示,可以在作业活动监视器中查看作业失败的原因,针对解决问题。

11
到E:\\Dept_Bak文件夹下,可以看到导出的EXCEL文件了,接下来还可以使用的SQL的邮件功能,自动将这个EXCEL文件发送给指定的邮箱接收者。
参考技术A SQLServer表数据导出为Excel文件
一、少量数据导出
1、在查询分析器中,使用SQL语句检索要导出的数据
2、选中所有数据,点击鼠标右键,选择另存为CSV文件
3、用EXCEL把CSV文件另存为xls文件。
二、表格批量导出
1、开始菜单选择"导入和导出数据"
2、选择要导出的数据库,如图配置
3、设置导出目标
4、设置目标文件
5、选择筛选数据发送
6、选择导出的表格
7、完成设置
参考技术B SQLServer表数据导出为Excel文件
一、少量数据导出
1、在查询分析器中,使用SQL语句检索要导出的数据
2、选中所有数据,点击鼠标右键,选择另存为CSV文件
3、用EXCEL把CSV文件另存为xls文件。

二、表格批量导出
1、开始菜单选择"导入和导出数据"

2、选择要导出的数据库,如图配置

3、设置导出目标

4、设置目标文件

5、选择筛选数据发送

6、选择导出的表格

7、完成设置

以上是关于怎么定时自动将SQL数据导出为Excel文件的主要内容,如果未能解决你的问题,请参考以下文章

怎样将SQL数据导出到EXCEL中

怎样将SQL数据导出到EXCEL中

如何在mysql里把数据导出成excel文件

在Java编程中怎么将从数据库查询出来的数据导成Excel文件?

SQLyog查询数据后如何导到excel

Excel导出xml时提示“无法保存或者导出XML数据,此工作薄中XML映射不可导出(xml映射随便导的)请问怎么办