【问题标题】:SSIS package - Script task does not get executed when triggered through SQL Job AgentSSIS 包 - 通过 SQL 作业代理触发脚本任务时不会执行
【发布时间】:2019-09-04 18:00:24
【问题描述】:

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

谢谢, 丹尼尔

【问题讨论】:

    标签: sql-server ssis etl sql-agent-job script-task


    【解决方案1】:

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

    SQL Server 服务帐号权限:

    设置代理账号:

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多