通过SSIS目录管理对象模型以编程方式验证SSIS 2012包

时间:2012-08-29 14:12:02

标签: .net sql-server ssis sql-server-2012

我希望通过Microsoft.SqlServer.Management.IntegrationServices命名空间中的对象验证然后执行存储在SSIS目录(项目部署模型)中的SSIS包。 当我从Validate类执行PackageInfo方法时,它只运行验证,但不等到它结束。在one example中,我发现作者在“开火”中解雇了验证并忘记了'模式 - 当我们不打扰结果时为什么要开火?在another one中,未经事先验证就会触发执行。

  1. 我应该在每次执行前验证包吗?
  2. 如果是,如何在同步模式下进行?
  3. 我对ValidationOperation状态属性感到好奇。它' S 包裹catalog.validations status列,可以,inter alia,值succeeded (7)completed (9) - 是什么 他们之间的区别?

1 个答案:

答案 0 :(得分:2)

广告2:我能够在循环中等待验证结果:

var validationId = package.Validate(false, PackageInfo.ReferenceUsage.UseAllReferences, null);
ValidationOperation validation = package.Parent.Parent.Parent.Validations[validationId];
do
{
    Thread.Sleep(1000);
    validation.Refresh();
}
while (!validation.Completed);