Sql server SQL Server集成服务SSIS 2005-如何让用户运行包?

Sql server SQL Server集成服务SSIS 2005-如何让用户运行包?,sql-server,reporting-services,ssis,dts,Sql Server,Reporting Services,Ssis,Dts,所以我在SSIS中制作了一个包,从文本文件中读取数据并将其加载到数据库表中 为非技术最终用户设置此功能的最佳方式是什么,以便在需要时运行此功能 我的老板想让SP启动它,然后让reporting services生成一份报告来启动存储过程。当然还有更好的办法 ASP.NET是一个很好的解决方案:从命令提示符: DTEXEC.EXE/F“C:\YOUR\u PACKAGE.dtsx” 此处的完整语法:您还可以创建一个SQL代理作业,以空计划运行包。然后创建一个web前端,调用EXEC msdb.db

所以我在SSIS中制作了一个包,从文本文件中读取数据并将其加载到数据库表中

为非技术最终用户设置此功能的最佳方式是什么,以便在需要时运行此功能


我的老板想让SP启动它,然后让reporting services生成一份报告来启动存储过程。当然还有更好的办法

ASP.NET是一个很好的解决方案:

从命令提示符:

DTEXEC.EXE/F“C:\YOUR\u PACKAGE.dtsx”


此处的完整语法:

您还可以创建一个SQL代理作业,以空计划运行包。然后创建一个web前端,调用EXEC msdb.dbo.sp_start_job N'Your SSIS job Name'

这并不完全简单,还附带了许多运行状况警告,但可以配置为SSRS报告,将SSIS包用作数据源-请参阅


启用此功能后,您可以向SSIS包中添加额外的步骤,以将一个(或多个)输出到SSRS报告。

这听起来很有希望。我是否可以在web前端显示任何类型的反馈?例如,错误、加载行等?是。您可以围绕sp_help_作业存储过程开发一个包装器,用于轮询作业状态。对于插入的行,您需要构建一个自定义审计表,并将其键入包执行id。虽然这对于小包来说可能是一个很好的解决方案,但我认为对于较大的包,您可能会遇到问题。使用这种方法,您将在HTTP请求的上下文中运行包,这意味着如果包的运行时间超过HTTP超时值,它将被终止。此外,IIS AppPool可能会因为设置了内存/cpu限制而自动重新启动,您的包将再次被终止。如果您真的想从.NET运行包,我建议您使用WCF端点构建一个Windows服务,该端点将用于启动包并接收状态。谢谢Ed。我已经完成了此设置,这很酷。问题。如果包失败,例如,有人删除了输入文件,报告只会显示“包失败…”。有没有办法获得详细的故障信息?告诉用户出了什么问题。@Greg-问得好!也许一种方法是使用SSIS错误处理程序向SSRS返回一个“错误”数据集(包含故障的详细信息),该数据集可以有条件地显示?我认为应该可以,但我还没有尝试过。我的SSIS包将一个文件写入网络共享,但由于一些身份验证问题,我始终无法使其工作。我在Kerberos上玩了很长一段时间,然后放弃了,去了PowerShell。