【发布时间】:2018-11-16 09:43:47
【问题描述】:
我有一个 SSIS 包,我需要安排它每天在 1:00 AM 和 1:00 PM 运行。
在1:00 AM 它应该传递前一天的参数,例如
15 Nov 2018 12:00 PM 作为@StartDate & 15 Nov 2018 11:59 PM 作为@EndDate
在1:00 PM 它应该传递当天的参数,例如
15 Nov 12:00 AM 作为@StartDate & 15 Nov 11:59 AM 作为@EndDate
通过数据流中的 OLE DB 源代码编辑器任务调用存储过程。
是否有人对我如何实现这一点有任何建议,并指出如果作业在1:00 PM 失败并且它应该在2:00 PM 重新运行,它仍然应该传递相同的参数。
【问题讨论】:
-
您可能需要重新考虑您的 StartDate 和 EndDate 窗口。
15 Nov 12:00 PM在15 Nov 11:59 AM之后一分钟。在1:00 PM,如果您运行“当前日期”,您将尝试查看尚未发生的 11 个小时(您的结束日期15 Nov 11:59 PM是运行时间之后的 10:59)。 -
如果“今天”是
15 Nov 2018,那么在凌晨1:00,您可能应该设置@StartDate = '14 Nov 2018 12:00 PM'和@EndDate = '14 Nov 2018 11:59 PM'。然后在下午 1:00 设置@StartDate = '15 Nov 2018 12:00 AM'和@EndDate = '15 Nov 2018 11:59 AM' -
是的,完全正确@digital.aaron。干杯。
-
如果您希望作业始终从正确的位置提取,那么您需要将其记录在表中并允许作业在下次运行时使用该表。然后,您不必在任何地方硬编码日期和时间。您可以随时随地安排它,无论您想要多频繁,它都可以正常工作。
-
正是@Nick.McDermaid,好点子,如果您想将此作为答案发布,我会接受。
标签: sql-server tsql ssis dataflow