我不确定您使用的是什么调度程序,或者它是如何配置的,但您可以通过使用 DTExec 模拟调度程序来调试您的方式。听起来你已经越过了你的Setup
和Execution Method
(这些定义见下文)。
这是摘要。
- 选项 1:对于设置,使用
Project References
,对于执行方法,使用Project/Package
.
- 选项 2:对于安装程序,对于每个子包,使用
External References
和对于执行方法,使用File
.
(听起来您正在使用 and 的组合Project References
,File
这反过来会There is no project to reference
从子包中发送错误。)
选项1
设置
在 SSDT 中打开您的父包,然后双击一个子包。它应该如下所示:
执行方法
此设置意味着您需要通过 DTExec 通过 Project/Package 方法执行包。所以构建你的项目——这会生成一个 ispac 文件。并通过 dtexec 执行,它看起来像:
dtexec /Proj Path\To\MyProject.ispac /Pack Path\To\The\ParentPackage.dtsx
注意:如果您在参数中指定dtsproj
文件而不是ispac
文件/Proj
,您将收到File contains corrupted data
错误消息!
选项 2
设置
在 SSDT 中打开您的父包,然后双击一个子包。将其更改为如下所示:
这是通过以下方式完成的:
1. 将引用类型更改为外部引用
2. 将位置更改为文件系统(SQL Server 是另一个选项)
3. 选择<New connection...>
为要运行的子包创建新文件连接(或 SQL 服务器连接)
执行方法
此设置意味着您现在可以使用 File 方法,这可能是您尝试执行包的方式。
dtexec /f Path\To\My\ParentPackage.dtsx