要在SQL Server数据工具之外运行SSIS包,必须将“移动文件”安装到“存档集成服务”或更高版本

时间:2016-02-17 22:43:09

标签: sql-server ssis sql-server-data-tools ssdt-bi

我正在测试从VS2005项目升级到VS2013(包部署模型)项目的SSIS包。这是一个非常简单的包,它只是从特定位置逐个处理文件,并根据这些文件更新数据库,一旦完成,它会根据结果将文件移动到存档或非解析目录。我得到了奇怪的错误,我无法找到解决方案。

问题是我的包运行正常,它完全符合它的预期(从文件中提取数据并插入表中)。但此操作的一部分是将文件移动到存档(文件系统任务)。我收到此错误“描述:要在SQL Server数据工具之外运行SSIS包,您必须安装移动文件到存档的Integration Services或更高版本。

我使用VS2013和2014年的SSDT BI,SSIS Designer版本与我的开发测试VM(12.0.2000.8 x64位)中的dtexec实用程序匹配。以下是CLI的输出。

Microsoft (R) SQL Server Execute Package Utility Version 12.0.2000.8 for 64-bit Copyright (C) Microsoft Corporation. All rights reserved.

Started: 10:45:58 AM Progress: 2016-02-11 10:45:59.20 Source: Truncate StagingTable Executing query "TRUNCATE TABLE StagingTable".: 100% complete End Progress Progress: 2016-02-11 10:45:59.25 Source: Insert into Staging Executing query "exec dbo.staging @xml_fileName,NULL,'C...".: 100 % complete End Progress Progress: 2016-02-11 10:45:59.25 Source: Move to MasterXML Executing query "exec dbo.insertXML".: 100% complete End Progress Error: 2016-02-11 10:45:59.25 Code: 0xC000F427 Source: Move File to Archive Description: To run a SSIS package outside of SQL Server Data Tools you must install Move File to Archive of Integration Services or higher. End Error Progress: 2016-02-11 10:45:59.30 Source: Execute SQL get_next_file Executing query "exec get_next_file".: 100% complete End Progress Progress: 2016-02-11 10:45:59.51 Source: Execute SQL notify_users Executing query "exec notify_users".: 100% complete End Progress DTExec: The package execution returned DTSER_SUCCESS (0). Started: 10:45:58 AM Finished: 10:45:59 AM Elapsed: 1.172 seconds

在最近的努力中,我在同一台机器上安装了VS2013和SSDT BI for SQL Server 2014,我正在尝试运行此软件包。如果我使用VS,程序包运行正常,但是一旦我尝试使用以下命令通过CLI运行此程序包,它仍然会失败并显示相同的消息,

"C:\Program Files\Microsoft SQL Server\120\DTS\Binn\dtexec.exe" /f "C:\SSIS\Load_Files.dtsx" /ConfigFile "C:\SSIS\loadFiles_SSIS_Configuration.dtsconfig"

我确信它有关于SSIS如何在VS2005到VS2013中工作的事情,但只是不知道在哪里看。有什么建议吗?

2 个答案:

答案 0 :(得分:6)

只是为了给将来的访问者提供一些东西,在我的案例中,我在同一台机器上安装了两个不同版本的SSIS。一个用于2005年,另一个用于2014年。奇怪的是,即使我在我的命令中明确指向较新的版本(如后面的部分所示),它总是使用旧版本。

一旦我使用SQL Server 2014(& SSIS)清洁系统,同样的程序包运行没有任何问题。所以它似乎是某种限制,不允许在同一台机器上运行两个不同版本的SSIS。

答案 1 :(得分:3)

您需要安装SQL Server并确保选择Integration Services。然后从新的SQL Server安装文件夹运行DTExec.exe

在我的情况下,我安装了SQL Server 2016标准版,DTExec.exe位于以下位置:

C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe

因此,您的新命令文件(对于SQL Server 2016)将如下所示:

"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\dtexec.exe" /f "C:\SSIS\Load_Files.dtsx" /ConfigFile "C:\SSIS\loadFiles_SSIS_Configuration.dtsconfig