怎么定时自动将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文件的主要内容,如果未能解决你的问题,请参考以下文章