Có một đối tượng khác trong ràng buộc, PrecedenceExecutable, đại diện cho đối tượng "preceeding" và nó cũng có thuộc tính ID. Tôi không chắc mình đã bỏ lỡ nó như thế nào. Có vẻ như tôi chỉ cần nhìn nó mới mẻ.
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;
}