日期:2011-08-15  浏览次数:21129 次

当我们编了一段代码, 执行时间会需要好几十秒钟甚至更长, 比如是一段游标程序, 它要访问所有的记录并改变它们. 我
发现我在Query Analyzer工具里执行后所有的记录都能按我所愿改变, 当换成以下几种环境时程序会出现只更新了最前一
部分记录的怪事:

1.当在ASP中直接用con.execute语句执行直接SQL时
2.当在ASP中直接用con.execute调用相应的代码的存储过程时
3.当在ASP中用command调用无任何参数的存储过程时
4.当在ASP中调用没有输出参数的存储过程时

一次不经意的操作, 我发现当使用带有输出参数的存储过程时, 程序能够执行很少一段时间, 并使所有记录生效. 我的
目的是达到了, 但这是为什么呢? 为什么SQL语句在上面的4种情况下只执行一下子就停下了?

一点说明: 输出参数只要有一个就可以, 不管它在存储过程中是否用得着.