--递归调用
         exec sp_GetNodeIDArray @StartNodeID, @EndNodeID, @ProjectTypeID, @VersionID, @ResultNodeIDArray;
-->
--递归调用
         exec sp_GetNodeIDArray @StartNodeID, @EndNodeID, @ProjectTypeID, @VersionID, @ResultNodeIDArray output;这是明显的错误
其它的需要时间

解决方案 »

  1.   

    @ResultNodeIDArray变量应该有问题,在多个父节点的情况,因为你的结果都放在@ResultNodeIDArray一个变量,当一条路不同的时候没有恢复以前的@ResultNodeIDArray建议改成用函数
      

  2.   

    你们的回答都不全面,没有给出具体的解决办法,现在我用单一路线的节点测试了一下
    结果是递归调用根本没有执行,不知道是什么原因.
    后来我发现还少写了一个语句:--更新父亲节点字符串(删除已经分解出的节点)
    set @tempNodeIDArray = RIGHT(@tempNodeIDArray, LEN(@tempNodeIDArray) -@tempNodeIDIndex);