SSIS- SQL代理每小时发送一次邮件

时间:2016-09-23 12:57:15

标签: ssis ssis-2012 ssis-2008

我设计了一个SSIS包,它会将一些数据加载到表中 来自文件夹中的文件。 一旦数据加载文件移动到archieve。

客户要求在流程结束时触发邮件,所以我实施了 它通过发送邮件任务。

汇集机制是通过代理人工作完成的,该工作在1小时后运行 检查文件的存在。

问题从这里开始。

它每隔1小时开始向用户发送邮件

是否可以进行一些修改。

谢谢大家......我想我的问题不明确。我面临的问题是我的包是每1小时启动一次触发邮件,即使源文件夹中没有文件也是如此。我希望在Source文件夹中有文件时触发邮件,并且在处理完文件之后应该触发邮件,这样用户就可以知道他们放在文件夹中的文件是否已被处理。但在目前的情况下,因为我使用代理作业,即每1小时检查一次文件,即使文件没有,也会有用户触发邮件。请帮帮我。

任何人都可以建议我如何纠正它。

由于

2 个答案:

答案 0 :(得分:0)

是的,根据您的目的,有很多方法可以解决这个问题。

如果某些条件成立,它们都只涉及发送电子邮件。你必须决定那个条件是什么,然后这将建议处理它的最佳方法。

例如,您可以设置变量并使用优先约束中的表达式仅转到发送邮件任务(如果变量为true)。

如果您想查看更复杂的条件,可以使用脚本任务。

答案 1 :(得分:0)

我只会在包裹失败时发送邮件。不确定,您向客户发送邮件的目的。

如果问题是每1小时发送邮件对客户来说太多了。 如果包失败则发送邮件并将每小时的状态保存在文件中(使用脚本任务,使用变量获取当前小时并将小时和状态写入文件)并在结束时发送合并邮件,如。

Date: 09/23/2016

Hr - STATUS
-------------
00 - SUCCESS
01 - FAILED
.
.
.
23 - SUCCESS

如果要在特定时间发送合并邮件,请在发送邮件任务之前使用优先约束中使用的变量。

修改

根据您的澄清更新。使用脚本任务创建一个布尔变量以获取文件的存在。在发送邮件任务之前,在优先约束中使用该变量。

http://sql-articles.com/articles/bi/file-exists-check-in-ssis/

此外,Refer