![](/img/trans.png)
[英]Selecting rows from multiple columns in the same table SQL Server CE WebMatrix
[英]Selecting all rows from a SQL Server table locked with the readcommited IsolationMode
我的一个客户会话从事务在表中创建一个条目并继续其处理。 事务在read committed
的隔离模式下运行。 同时,另一个客户端会话报告表中的所有数据。
由于锁定行(由其他客户端插入),因此全选操作现在已完全锁定。
如何在全选期间检索提交的数据,而不是完全锁定?
任何帮助将不胜感激。
您尚未真正确定使用场景的具体细节,但是有可能从表中取出数据,但有一些严重的警告 。
您可以使用marc_s所说的READ UNCOMMITTED
快照隔离级别,其作用WITH (NOLOCK)
在事务中所有select语句上使用WITH (NOLOCK)
作用相同。 如果您只想读取该表,但通常会处理事务中的所有其他读取,那么最好将NOLOCK
提示放在查询中的特定表上。 因此,例如:
SELECT *
FROM firstTable f INNER JOIN
secondTable s WITH (NOLOCK) on f.Key = s.Key
这将为firstTable
发出普通的读取锁,但secondTable
带任何锁读取secondTable
。 没有锁会非常危险-因为您可以有效地破坏数据。 如果执行插入操作会重新排序数据并导致页面拆分,那么您可以两次退出同一行,并且会遇到各种类似的不愉快情况。
因此有可能,但这并不理想,因此您应警惕这种效果 。 杰森·斯特拉特(Jason Strate)提供了一些不错的进一步阅读。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.