Sql server 2008 是否从SSRS报告按钮运行SSIS作业?
我可能肯定这件事做不到,但无论如何我会和你们核实的 我们有和Sql server 2008 是否从SSRS报告按钮运行SSIS作业?,sql-server-2008,reporting-services,ssis,ssrs-2008,ssrs-2008-r2,Sql Server 2008,Reporting Services,Ssis,Ssrs 2008,Ssrs 2008 R2,我可能肯定这件事做不到,但无论如何我会和你们核实的 我们有和SSI作业和SSRS报告。SSIS作业从远程系统向本地服务器生成数据;SSRS报告从SSIS作业生成的本地数据 来自SSIS作业的数据每天更改无数次,但SSIS作业仅每小时更新一次。假设作业在早上7:01运行,用户在早上7:50生成报告。很有可能在这49分钟内数据发生了变化 所以我有两个选择: 1.从用于报告的存储过程中执行SSIS作业。因此,当我调用报表时,SP将首先执行SSIS作业并更新数据,然后执行返回报表数据的SELECT语句。
SSI
作业和SSRS
报告。SSIS
作业从远程系统向本地服务器生成数据;SSRS
报告从SSIS
作业生成的本地数据
来自SSIS作业的数据每天更改无数次,但SSIS作业仅每小时更新一次。假设作业在早上7:01运行,用户在早上7:50生成报告。很有可能在这49分钟内数据发生了变化
所以我有两个选择:
1.从用于报告的存储过程中执行SSIS作业。因此,当我调用报表时,SP将首先执行SSIS作业并更新数据,然后执行返回报表数据的SELECT语句。这里的问题是SSIS作业需要几秒钟的时间,因此报告似乎很慢
非常感谢您的帮助。关于第二个选项,您可以创建一个
@RunJob
参数,可能是布尔值
类型,然后在数据集中验证用户是否选择了True
来运行作业。您应该将默认值设置为False
,以避免每次生成报告时都执行作业
在数据集查询中,如果参数@RunJob
为True,则使用sp\u start\u job
存储过程运行执行SSIS包的作业,否则仅检索报告数据
虽然这可以帮助你得到你需要的东西,但我不建议你这么做
出于您的目的使用SSR,因为它不会影响任何情况
底层数据库
请告诉我这是否有帮助。您可以使用参数来确定是否运行存储过程。将默认设置为否 在数据集的开头添加一行,检查参数并在必要时运行SP(参数=是)
如果用户想要刷新,他会将参数更改为YES并重新运行它。您可以构建一个运行SSIS包的ASP.NET页面;我想通过调用page_load函数前面的答案中提到的sp_start_job过程。 然后可以从SSRS报告调用该页面,例如,通过将文本框的操作设置为页面的url。
我想那会管用的 SSIS作业有多复杂?它只是复制数据吗?您可能希望查看某种复制设置,而不是每小时手动复制数据。以实现“刷新按钮”效果。您可以隐藏此参数,并添加一个带有“刷新数据”的文本框,该文本框的操作设置为“转到报告”;将此参数设置为True。
IF @RUN_SP = 'YES'
EXEC SP_Refresh_Data