我看了几篇文章,包括这个未回答的问题:SQL Server Job runs successfully but doesn't execute packages
我在使用集成服务MSDB目录的SQL Server 2012中遇到完全相同的问题。我可以从该目录手动执行SSIS包,但代理作业除了声明它已成功完成外没有做任何事情。我也从Visual Studio中执行了我的SSIS包,他们工作得很好。这是情况,我想知道它是否可能是权限:
我有一个SQL代理作业从包存储(MSDB)运行SSIS包,使用SQL Server代理服务帐户运行。目前我们没有对这些服务器进行任何类型的项目部署,因此我坚持使用软件包部署。以下是我采取的一些步骤:
有什么想法吗?网络位置的权限还是需要代理?我再次运行64位的Microsoft SQL Server 2012企业版。非常感谢您提供的任何帮助。
答案 0 :(得分:0)
发现问题。我的SSIS包有一个foreach循环容器,虽然循环容器内的任务无法访问目标,但循环容器在技术上已成功完成。我们必须授予该帐户正在运行的帐户的权限,以便更正该作业。这些权限放在网络位置,以允许该帐户访问读取和写入该位置。此外,我的Excel连接是64位,因此我们将其启用为32位运行时,这样就可以成功完成该部分流程。我重新启用了任何已禁用的任务,现在看起来很不错。谢谢!
答案 1 :(得分:0)
我也曾多次遇到过这种情况,但是当我检查手动运行包时,它成功完成了,因为我也在使用每个循环容器和序列容器。在两种情况下,每个循环和序列都在完成而未验证其他情况因此,我检查了优先级约束并进行了更改,现在它可以正常工作,并且所有组件均成功运行。 有时我们错过了选择合适的优先约束的机会,有很多选项,例如成功,失败,完成,然后您可以从Constraint,Expression,Expression AND Constraint和Expression OR Constraint中选择值。 最初,我使用Expression OR Constraint来获得成功,现在将其更改为Expression AND Constraint,它对我来说很好用。 您还需要执行此操作,它一定可以正常工作,请尝试让我知道。