我正在测试从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中工作的事情,但只是不知道在哪里看。有什么建议吗?
答案 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