通过T-SQL运行SSIS包时,SSIS脚本任务失败

时间:2016-09-08 07:14:26

标签: tsql ssis

我编写了一个SSIS脚本任务,我使用C#代码使用ODBC从数据库中读取数据,然后使用Microsoft.Office.Interop.Excel对象动态创建Excel电子表格。然后代码将电子表格保存到目录文件夹。

当我在SQL Server Business Development Studio中执行该程序包时,它运行正常,并且程序包将电子表格写入文件夹没有任何问题,但是当我运行T_SQL代码时,它会使脚本任务失败。请参阅以下脚本任务代码: -

直接从BI工具执行时,它工作正常, 但是当我通过T_SQL代码执行时失败 -

    @Cmd VARCHAR(4000),
    @ReturnCode INT,
    @Msg VARCHAR(1000)

    SELECT @Cmd = 'DTEXEC /FILE "' + @Path + 'Package.dtsx" /MAXCONCURRENT 1 /CHECKPOINTING OFF /REPORTING EW'

    EXEC @ReturnCode = xp_cmdshell @Cmd

错误: -

  

Microsoft(R)SQL Server执行包实用程序       64位版本12.0.5000.0       版权所有(C)Microsoft Corporation。版权所有。       空值       开始于:12:05:47 PM       错误:2016-09-08 12:05:49.42          代码:0x00000001          来源:脚本任务          描述:调用目标抛出了异常。       结束错误       警告:2016-09-08 12:05:49.42          代码:0x80019002          来源:包装          描述:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。执行方法成功,但引发的错误数量(1)   达到允许的最大值(1);导致失败。这发生了   当错误数量达到指定数量时       d在MaximumErrorCount中。更改MaximumErrorCount或修复错误。       结束警告       DTExec:包执行返回DTSER_FAILURE(1)。       开始于:12:05:47 PM       完成时间:下午12:05:49       经过:1.828秒       NULL

1 个答案:

答案 0 :(得分:0)

这是与this类似的问题,其中@ Nick.McDermaid引用了其他similar个问题。

他们都指向答案outlined here

  

在systemprofile文件夹中似乎需要一个Desktop文件夹来打开Excel的>文件。

     

此解决方案是......

     

·Windows 2008 Server x64

     

请创建此文件夹。

     

C:\的Windows \ Syswow64资料\配置\ systemprofile \桌面

     

·Windows 2008 Server x86

     

请创建此文件夹。

     

C:\的Windows \ system32 \设置\ systemprofile \桌面

     

此操作消除了我系统中的办公自动化问题。