我有一个存储过程可以对表进行一些插入。如果我必须重复执行相同的存储过程,这些执行中的每一个都会在结束后反映表中的Inserts,或者可能发生每个插入在存储过程执行结束后发生并与执行第二个实例重叠存储过程。
我希望我很清楚,如果不是,请纠正我
谢谢
答案 0 :(得分:1)
无论在存储过程中执行了哪些工作,除非由于错误而显式回滚或自动回滚,否则将在存储过程退出时存在。一旦存储过程退出,就不会再进行任何工作了。
这意味着在一个会话中,存储过程的任意数量的执行都是串行处理的 - 一个接一个地处理,没有重叠。
但是,在多个会话/连接中,如果在其他会话/连接中同时运行相同的代码(存储过程甚至是临时SQL),则在存储过程中完成的工作肯定会重叠。