SSIS 包 - 通过 SQL 作业代理触发时,不会执行脚本任务



我有一个 SSIS 包,它使用数据流组件创建 2 个文本文件。它连接到 SQL 数据库,如果查询返回数据,则会创建 2 个文件。 之后,脚本任务循环遍历写入 2 个文件的文件夹,确定最旧的文件并将其移动到另一个文件夹。 当我在服务器上执行包时,一切都进展顺利。没有错误,所有功能都执行。完善。 但是,当我在作业中计划 SSIS 包时,仅当 SQL 查询(数据流组件(未返回任何结果,因此不会创建任何文件时,才会执行上述脚本任务。然后,脚本将第二个文件从上次运行移动到另一个文件夹。 如果数据流确实创建了 2 个新文件,则脚本任务不会执行任何操作。 任何想法如何改变这种行为? 同样,这仅在通过作业执行时发生,而不是在本地运行时发生。

谢谢 丹尼尔

当从 SQL Server 执行 SSIS 包时,它们使用 SQL Server 服务帐户访问文件系统NT SERVICEMSSQL$<Instance Name>(其中<Instance Name>应替换为已安装的实例名称(。您必须授予此帐户才能访问所选目录或使用代理帐户运行 SQL 作业:

SQL Server 服务帐户权限:

  • 配置文件系统权限以进行数据库引擎访问

设置代理帐户:

  • 使用代理帐户从 SQL Server 代理运行 SSIS 包
  • 创建 SQL 服务器代理代理

包正在使用代理帐户运行。所有其他包正在运行并保存在同一个文件夹中。在这个文件夹中,保存在此文件夹中的文件必须移动到另一个文件,该文件夹保存到使用第三方dll的不同应用程序。 我正在使用反射调用库。但是 dll 未在 sql 中注册。这会是一个问题吗?

最新更新