SQL作业成功完成但不执行包

时间:2018-03-27 16:55:30

标签: sql-server ssis sql-job

我看了几篇文章,包括这个未回答的问题:SQL Server Job runs successfully but doesn't execute packages

我在使用集成服务MSDB目录的SQL Server 2012中遇到完全相同的问题。我可以从该目录手动执行SSIS包,但代理作业除了声明它已成功完成外没有做任何事情。我也从Visual Studio中执行了我的SSIS包,他们工作得很好。这是情况,我想知道它是否可能是权限:

  1. SSIS包在网络位置查找符合条件的Excel文件。
  2. 找到后,SSIS包将数据写入数据库并将文件存档到同一网络位置的另一个文件夹。
  3. 如果未能将数据导入数据库或迁移到存档文件夹,则会发送电子邮件。
  4. 我有一个SQL代理作业从包存储(MSDB)运行SSIS包,使用SQL Server代理服务帐户运行。目前我们没有对这些服务器进行任何类型的项目部署,因此我坚持使用软件包部署。以下是我采取的一些步骤:

    1. 从Visual Studio 2010手动运行包(完全成功)。
    2. 从SQL Server MSDB目录手动运行包(完全成功)。
    3. 使用父包从SQL Server代理手动运行作业,作为将子包作为外部引用执行的步骤(成功但没有任何反应)。
    4. 从SQL Server代理手动运行作业,使用每个包作为自己的步骤,不包括父包(成功但没有任何反应)。
    5. 有什么想法吗?网络位置的权限还是需要代理?我再次运行64位的Microsoft SQL Server 2012企业版。非常感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:0)

发现问题。我的SSIS包有一个foreach循环容器,虽然循环容器内的任务无法访问目标,但循环容器在技术上已成功完成。我们必须授予该帐户正在运行的帐户的权限,以便更正该作业。这些权限放在网络位置,以允许该帐户访问读取和写入该位置。此外,我的Excel连接是64位,因此我们将其启用为32位运行时,这样就可以成功完成该部分流程。我重新启用了任何已禁用的任务,现在看起来很不错。谢谢!

答案 1 :(得分:0)

我也曾多次遇到过这种情况,但是当我检查手动运行包时,它成功完成了,因为我也在使用每个循环容器和序列容器。在两种情况下,每个循环和序列都在完成而未验证其他情况因此,我检查了优先级约束并进行了更改,现在它可以正常工作,并且所有组件均成功运行。 有时我们错过了选择合适的优先约束的机会,有很多选项,例如成功,失败,完成,然后您可以从Constraint,Expression,Expression AND Constraint和Expression OR Constraint中选择值。 最初,我使用Expression OR Constraint来获得成功,现在将其更改为Expression AND Constraint,它对我来说很好用。 您还需要执行此操作,它一定可以正常工作,请尝试让我知道。