调用存储过程时的.net 4.0事务行为

本文关键字:事务 net 存储过程 调用 | 更新日期: 2023-09-27 18:03:29

如果我在c#代码中创建了SqlConnection,而没有为它创建SqlTransaction,然后使用SqlCommand来调用存储过程,那么在以下两种情况下,代码的事务行为是什么

  1. 存储过程没有BEGIN TRANSACTION语句
  2. 存储过程在开始时有一个BEGIN TRANSACTION,在结束时有一个COMMIT TRANSACTION

假设没有导致事务回滚的错误发生

根据我的理解,存储过程将在事务外部调用,并导致以下行为:

  1. 存储过程中的每条语句将在其自己的事务中执行
  2. 在存储过程中打开的事务将是顶级事务,存储过程中的所有语句将与该事务相关联。

请评论我对A和B场景的理解是否正确

调用存储过程时的.net 4.0事务行为

您对A和B两种情况的理解是正确的。

人们更喜欢ADO。当涉及到大量UI端数据交互时,人们更喜欢在UI端处理它。否则,您必须将所有数据传递给SQL端并让它处理它,这有时会成为开销。