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

将数据从MS Sql Server存储过程导出到excel文件,sql,excel,reporting-services,ssis,ssrs-2008,Sql,Excel,Reporting Services,Ssis,Ssrs 2008,我有一个任务,那就是我想将数据从MS Sql Server存储过程导出到不同表格中的excel文件(同一excel文件中的不同表格),格式如方向为横向、excel表格A列的每个值后的分页符等 最后,excel文件通过电子邮件发送 请建议适合此任务的方法。 SSRS、SSIS打包或创建过程概念。 请提供完成此任务的任何链接或示例 现在我正在手动完成这项任务,所以我需要通过自动化来完成这项任务。 请提供帮助和建议。您可以在这里查看 本文使用批量复制程序(BCP)创建CSV文件。尽管可以使用DTS或

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

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

请建议适合此任务的方法。 SSRS、SSIS打包或创建过程概念。 请提供完成此任务的任何链接或示例

现在我正在手动完成这项任务,所以我需要通过自动化来完成这项任务。
请提供帮助和建议。

您可以在这里查看

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

我使用master..sysobjects作为示例表进行提取

创建一个简单的CSV文件

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

BCP master..sysobjects out 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/SSI一样,BCP是一个客户端实用程序,因此需要提供连接信息

对于SQL Server之间的数据传输,使用–n或-n代替–c表示本机数据格式(-n=Unicode)。这会更快,并避免数据转换问题。有关BCP命令的完整格式,请参阅前面的BOL链接

由于BCP是一个命令行实用程序,因此它是使用xp\u 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输出划分为单独的表格,如下所述:

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


使用SSI,可以将数据导出到excel

来源:OLEDB来源 目的地:可执行判定


创建和部署包后,在SQL Server agent中进行计划。

SSRS支持导出到多个Excel工作表。以下是一个链接,解释了如何:

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

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

该工具不是免费的,但允许您在大约一分钟内设置、运行或安排任务。此工具的一个优点是能够格式化excel文件,因此您可以设置例如将数据导出为包含摘要和筛选器的excel表格。您还可以以不同的方式显示数据:分组、数据透视等。该工具支持SSR的数据驱动订阅@SQLDiver建议使用它发送电子邮件,但数据驱动订阅仅在SQLServerEnterprise中可用,价格昂贵。如果您需要数据驱动的报表,此工具可能是Enterprise edition的廉价替代品。所以这取决于你的需要。如果您只有一个这样的任务,那么基于SSR或SSI的解决方案将更便宜,而且可能是更好的选择。如果您计划将来有多个任务,您需要特殊的格式或数据驱动的子描述,那么可能需要检查上面提到的第三方工具