Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwendung der SSIS-API zum Lesen eines Pakets und Bestimmen der Tasksequenz aus Code (PrecedenceConstraints)

Es gab ein weiteres Objekt unter der Einschränkung, PrecedenceExecutable, das das "vorhergehende" Objekt darstellt, und es hat auch eine ID-Eigenschaft. Ich bin mir nicht sicher, wie ich es verpasst habe. Ich musste es nur frisch betrachten, wie es scheint.

    foreach (var precedenceConstraint in package.PrecedenceConstraints)
    {

        Microsoft.SqlServer.Dts.Runtime.TaskHost constrainedExecutable = (Microsoft.SqlServer.Dts.Runtime.TaskHost)precedenceConstraint.ConstrainedExecutable;
        Microsoft.SqlServer.Dts.Runtime.TaskHost precedenceExecutable = (Microsoft.SqlServer.Dts.Runtime.TaskHost)precedenceConstraint.PrecedenceExecutable;

        string taskName = constrainedExecutable.Name;

        string constrainedExecutableId = constrainedExecutable.ID;
        string precedenceConstraintId = precedenceConstraint.ID;

        Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ExecuteSQLTask executeSqlTask = (Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ExecuteSQLTask)constrainedExecutable.InnerObject;

    }