Sql 我可以自动化需要用户输入的SSIS包吗?

Sql 我可以自动化需要用户输入的SSIS包吗?,sql,sql-server,visual-studio,ssis,Sql,Sql Server,Visual Studio,Ssis,在实习期间,我一直在本地虚拟机上开发SSIS中的数据管道,并负责从Marketo收集数据(re:)。此包运行时不会出错,首先是一个Truncate table execute SQL任务,然后是5个数据流任务,这些任务从Marketo内的不同来源收集数据,并将它们移动到SQL Server内的暂存表,最后是一个execute SQL任务,以仅加载处理表和新数据 我遇到的问题是:我的项目负责人希望这个过程每天都能自动运行,我注意到网上有大量资源显示SSIS包的自动化,但在我的包中,我必须有Mark

在实习期间,我一直在本地虚拟机上开发SSIS中的数据管道,并负责从Marketo收集数据(re:)。此包运行时不会出错,首先是一个Truncate table execute SQL任务,然后是5个数据流任务,这些任务从Marketo内的不同来源收集数据,并将它们移动到SQL Server内的暂存表,最后是一个execute SQL任务,以仅加载处理表和新数据

我遇到的问题是:我的项目负责人希望这个过程每天都能自动运行,我注意到网上有大量资源显示SSIS包的自动化,但在我的包中,我必须有Marketo源的用户输入。Marketo源需要用户输入收集数据的时间范围


即使在需要用户输入的情况下,是否可以将此软件包自动化以每天运行?我在想,可能有一种方法可以将开始日期和结束日期的日期值增加1(因此开始日期可以是2018-07-01,结束日期可以是2018-07-02,每天增加1),以使包自行运行。提前感谢您的帮助

当您自动提取数据时,这表明您有一个预定义的时间表来提取数据。根据此计划,您应该能够根据包的运行日期计算出开始和结束日期

在SSI中,根据数据源和您的连接方法,有多种方法可以实现这一点。如果您使用的是脚本任务,则可以使用.Net代码简单地计算所需的日期。另一种选择是使用返回表达式结果的计算变量,例如:

DATEADD("Month", -1, GETDATE())

假设您计划在每月的第一天运行摘录,则上面的表达式将返回上个月的第一天。

您可以使用某种滚动日期。例如,最后30天或最后60天,等等。谢谢,我可能会这样做,但会以DATEADD(“Day”,-1,GETDATE())的格式从前一天开始,到今天结束。除了提高投票率,我还有什么办法可以提高你的个人资料或其他什么吗?我最近才加入这个网站。@ChanceAlexander您可以向上投票,对一个好的问题或答案表示感谢,然后单击“接受”将其标记为正确答案(如果是)。这向其他用户强调了同样的问题,即这是适合您的解决方案:)明白了。不过,我确实遇到了命名变量的问题。我试图在Marketo源的日期参数中输入变量(StartDate和EndDate),但Marketo不接受它们。我将它们输入为“User::StartDate”和“User::EndDate”我是否使用了错误的语法?您如何连接到Marketo?它是什么类型的连接?您应该能够将表达式添加到Marketo
ConnectionString
(或类似)属性中,您可以在其中引用变量以使用它们所持有的值。我不完全确定。当我第一天到达时,我的SSIS包中已经有一个Marketo源代码。我在连接管理器中只能找到一个标识、客户机ID、客户机机密和rest端点。如果有帮助的话,我们正在使用第三方(金斯威软件)从Marketo获取数据。