在阅读记录时我应该使用SQL事务吗?

use*_*745 8 c# sql sql-server-2005

SQL事务用于插入,更新,但是它应该用于读取记录吗?

Mat*_*lie 8

如果您在一个查询中查询所有记录,并一次性将它们拉回来,则没有必要.一切都包含在隐式事务中.也就是说,即使您获得了一百万条记录,即使其他进程正在更改记录,您也会看到同一时间点上所有一百万条记录的内容.

在只读过程中,您真正需要事务(并且通常是特定的锁定提示)的唯一时间是:
- 您读取记录"零食"并且在您进行操作时无需更改值.[例如ADO中的连接记录集,然后光标通过.]
- 您读取一些数据,进行一些计算,然后读取一些相关数据,但假设平均时间没有任何变化.


简而言之,当您希望停止其他进程在SQL语句之间干扰数据时,您需要事务.