具有一个具有输出参数的存储过程。在foreach循环中调用此过程。由于某种原因,一次迭代失败了,因为如果返回代码> 0,则我紧随该任务之后便有一个任务根据约束执行。
此过程成功运行时,输出变量值为0,并且此其他任务(用于记录一些信息的sql任务)将永远不会运行。
但是,它确实运行了一次迭代,所以我能够重设传入的数据并逐步进入其中。由于约束条件的约束,该约束条件会查看过程调用中映射到输出参数的变量,因此该存储过程之后的sql任务被击中。
奇怪的是,我采用了完全相同的参数及其值,并直接在SSMS中调用该过程并获得了输出参数值= 0,而在SSIS中,该任务执行并得到了> 0。
这使我想知道在某些情况下是否由于某种原因未将输出参数应用于变量?
在走错路径之后,我应该手动将变量的值重置为0吗?
[更新]
已解决-如果sql任务没有返回您认为的值,则启动sql profiler并观察您的发送。可能只是惊讶于您发送的内容“略有不同”。 :=)