怎么定时自动将SQL数据导出为Excel文件
来源:网络收集 点击: 时间:2024-07-16Create一个新的procedure,在开头可以做一个判断来决定什么时候执行数据结果导出,下面来看看这个存储过程:
Create procedure.
as
begin
---这里可以增加对数据表的查询条件或更多的数据处理;
---将结果放入一个新的数据表,然后将这个新表导出EXCEL文件;
declare@file_pathvarchar(200);--导出EXCEl文件的路径;
declare@file_namevarchar(200);--导出EXCEl的文件名;
declare@exec_sqlvarchar(200);--SQL语句;
---分开定义是为了以后修改路径或文件名更方便。
set@file_path=E:\Dept_Bak\
set@file_name=dept+CONVERT(varchar(100),GETDATE(),112)+.xls
set@exec_sql=select*frombook.dbo.users_dept ---数据表使用的完整路径;
set@exec_sql=bcp+@exec_sql+queryout+@file_path++@file_name+-c-T-Usa-PSQLpassword;
----Usa-PSQLpassword 这是数据库的sa账号和密码;
execmaster..xp_cmdshell@exec_sql
end

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

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

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

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

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

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

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

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

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

到E:\Dept_Bak文件夹下,可以看到导出的EXCEL文件了,接下来还可以使用的SQL的邮件功能,自动将这个EXCEL文件发送给指定的邮箱接收者。

本经验由三皮(Sanpitt)原创首发,原创图片、纯手打文字,也不容易,请点【投票】和【大拇指】以资鼓励;业余个人经验分享,肯定有不足的地方请留言,若觉得有用还可以点击右边的【双箭头】来分享;怕下次出问题之后忘记找不到,可点击【☆】来收藏。若有不足,请在【我有疑问】提问,给出您的方法。点击“关注”关注我,点击“Sanpitt”进入我的主页查看相关经验,收获更多。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_959679.html