将数据从MS Sql Server存储过程导出到excel文件
我有一个任务,那就是我想将数据从MS Sql Server存储过程导出到不同表格中的excel文件(同一excel文件中的不同表格),格式如方向为横向、excel表格A列的每个值后的分页符等 最后,excel文件通过电子邮件发送 请建议适合此任务的方法。 SSRS、SSIS打包或创建过程概念。 请提供完成此任务的任何链接或示例 现在我正在手动完成这项任务,所以我需要通过自动化来完成这项任务。将数据从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或
请提供帮助和建议。您可以在这里查看 本文使用批量复制程序(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的解决方案将更便宜,而且可能是更好的选择。如果您计划将来有多个任务,您需要特殊的格式或数据驱动的子描述,那么可能需要检查上面提到的第三方工具