SQL Server 中存储过程之后的执行顺序

Posted

技术标签:

【中文标题】SQL Server 中存储过程之后的执行顺序【英文标题】:Execution order after a stored procedure in SQL Server 【发布时间】:2015-10-01 13:51:37 【问题描述】:

我有一个存储过程,可以在表中插入一些内容。如果我必须重复执行相同的存储过程,则这些执行中的每一个都会在其结束后反映表中的插入,或者可能发生每个插入发生在存储过程执行结束之后并与第二个实例的执行重叠的情况那个存储过程。

希望我说清楚了,如果不是请纠正我

谢谢

【问题讨论】:

【参考方案1】:

在存储过程中完成的任何工作,除非显式回滚或由于错误而自动回滚,否则在存储过程退出时将在那里。一旦存储过程退出,它就无法再做任何工作了。

这意味着在单个会话中,存储过程的任意数量的执行都是串行处理的——一个接一个,没有重叠。

但是,跨多个会话/连接时,如果在其他会话/连接中同时运行相同的代码(存储过程甚至临时 SQL),则存储过程中完成的工作肯定会重叠。

【讨论】:

以上是关于SQL Server 中存储过程之后的执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 索引重新创建存储过程慢

SQL Server——存储过程

如何在 SQL Developer 中执行 SQL Server 存储过程?

SQL存储过程等待并按顺序执行

SQL Server 如何执行 带参数的 存储过程

怎样在Sql server中创建,执行和删除存储过程