繁体   English   中英

将数据从MS Sql Server存储过程导出到Excel文件

[英]export data from MS Sql Server store procedure to excel file

我有一个任务,那就是我想将数据从MS Sql Server存储过程导出到不同工作表中的excel文件(同一Excel文件中的不同工作表),其格式如方向为横向,在Excel的A列的每个值后分页床单等

最后,该excel文件通过电子邮件发送。

请建议哪种方法适合此任务。 SSRS,SSIS打包或创建Sore程序概念。 请提出任何链接或任何示例以完成此任务。

现在,我正在手动执行此任务,因此我需要通过自动化完成此任务。 请帮助和建议。

使用SSIS,可能会将数据导出到Excel

资料来源:OLEDB消息来源目的地:分子鉴定

创建并部署了程序包后,请在SQL Server代理中进行计划。

你可以在这里看看

https://www.simple-talk.com/sql/database-administration/creating-csv-files-using-bcp-and-stored-procedures/

本文使用批量复制程序(BCP)创建CSV文件。 尽管可以使用DTS或SSIS创建CSV文件,但是使用BCP通常更简单,更高效。

我使用master..sysobjects作为示例表来提取。

创建一个简单的CSV文件

将数据从数据库表复制到文件的最简单方法是使用基本的BCP命令:

BCP master..sysobjects输出c:\\ sysobjects.txt -c -t,-T -S用于创建CSV文件的BCP命令的基本格式如下:

BCP出

这里使用的开关是:

-c Output in ASCII with the default field terminator (tab) and row terminator (crlf)
-t override the field terminator with ","
-T use a trusted connection. Note that U –P may be used for username/password
-S connect to this server to execute the command

请注意,与DTS / SSIS一样,BCP是客户端实用程序,因此您需要提供连接信息。

要在SQL服务器之间传输数据,请使用-n或-N代替-c来代替本机数据格式(-N = Unicode)。 这样更快,并且避免了数据转换问题。 请参阅前面的BOL链接以获取BCP命令的完整格式。

由于BCP是命令行实用程序,因此可以使用xp_cmdshell从T-SQL执行。 在c:驱动器上创建一个名为BCP的目录并执行:

declare @sql varchar(8000)select @sql = 'bcp master..sysobjects out 
c:\bcp\sysobjects.txt -c -t, -T -S'+ @@servernameexec master..xp_cmdshell @sql

SSRS可能是实现所追求目标的最简单方法。 您将使用分组将Excel输出分为单独的工作表,如下所示:

Reporting Services导出到具有多个工作表的Excel

设置报告后,您可以设置数据驱动的订阅,该订阅将根据预定的时间表定期发送文件:

http://msdn.microsoft.com/en-GB/library/ms159150(v=sql.105).aspx

SSRS支持导出到多个Excel工作表。 这是一个链接,它说明了如何: http : //technet.microsoft.com/zh-cn/library/dd255278.aspx

如果您知道电子邮件地址,并且在执行任务期间不应从数据库中检索该电子邮件地址,则还可以创建一个标准订阅来发送电子邮件。

另一种选择是使用第三方工具。 它支持多种报告类型,包括SSRS和对存储过程的直接调用。 您可以查看此视频的前几分钟,以了解其工作原理: http : //www.r-tag.com/Pages/Preview_Demo.aspx

该工具不是免费的,但允许您在大约一分钟内设置,运行或安排任务。 该工具的优点之一是可以格式化excel文件,因此您可以设置例如要导出为带有摘要和过滤器的Excel表的数据。 您还可以通过不同的方式显示数据:分组,透视等。该工具支持SSRS的数据驱动订阅。 @SQLDiver建议使用它来发送电子邮件,但是数据驱动订阅仅在SQLServer Enterprise中可用,这很昂贵。 如果您需要数据驱动的报告,则此工具对于企业版而言可能是一种廉价的替代品。 因此,这取决于您的需求。 如果您只有这样的任务,那么基于SSRS或SSIS的解决方案将更便宜,并且可能是更好的选择。 如果您打算将来执行多个任务,则需要特殊格式或需要数据驱动的替换,可能值得检查上述第三个第三方工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM