事务会阻止其他代码读取不一致的数据吗?

nw.*_*nw. 2 sql sql-server transactions

我有一个存储过程插入到单个事务中的几个表中.我知道事务可以通过允许在错误,电源故障等之后进行回滚来维持非并发情况下的数据一致性,但如果在我提交事务之前其他代码从这些表中选择,它是否可能选择不一致的数据?

基本上,您可以选择未提交的交易吗?

如果是这样,那么人们通常如何处理这个问题呢?

Ali*_*tad 7

这取决于读取查询的ISOLATION LEVEL而不是事务.这可以在连接上集中设置,也可以在SELECT提示中提供.

请参阅:连接端:http://msdn.microsoft.com/en-us/library/system.data.isolationlevel.aspx

数据库方面:http://msdn.microsoft.com/en-us/library/ms173763.aspx