sql-server – 更新而不锁定事务

SQL Server中使用单个活动连接可以使用以下方案吗?

在READCOMMITED事务中,我需要更新一个表而不锁定它.例如,每次执行语句时,我都会在该表中增加一个字段.如果事务失败,则不需要回滚此操作.此外,此更新不应阻止尝试更新相同位置的其他并发用户.

最佳答案 如果不在表上放置锁,则无法执行更新.这是为了允许OTHER事务的事务隔离级别控制是否可以“看到”更新中所做的更改.您可以更改更新的事务隔离级别,但这仅影响更新会话(您设置它)控制更新是否可以“查看”在其他会话中所做的更改…

如果您希望OTHER Sql语句能够在此更新中看到您正在执行的操作,就好像它没有被锁定一样,您必须将其他tx上的事务隔离级别更改为Read Uncommited. (小心这个…这个隔离级别可能会导致数据库出现大量不一致.)

点赞