如何将事务隔离级别设置为读未提交作为用户的默认级别

4

在MS SQL Server Management Studio 2012中,是否可以默认为用户设置读取未提交的事务隔离级别?

我认为可以通过编辑配置文件或更改注册表键来实现,但我还没有找到任何可以更改此设置的内容。

4个回答

3
据我所知,您无法更改默认的锁定级别。
对于读取较多、写入较少的工作负载,您可以使用多版本并发控制来避免阻塞查询。这是Postgres和Oracle的默认设置。在SQL Server中,MVCC称为"读取提交的快照",您可以通过以下方式启用它:
ALTER DATABASE YourDb SET READ_COMMITTED_SNAPSHOT ON;

谢谢,我不确定是否可能,但认为最好检查一下! - mhp1990

2

你无法更改所有SQL Server数据库的默认隔离级别,它们都是读已提交。如果你想使用不同于默认的隔离级别,你唯一的选择是在会话中设置隔离级别。

你也可以在存储过程体内设置SET TRANSACTION ISOLATION LEVEL


2
您不能这样做。正如您所知道的,使用“读取未提交”的隔离级别时应该小心。根据MSDN中的说明:
当设置此选项时,可能会读取未提交的修改,也称为脏读取。在事务结束之前,数据中的值可以更改,并且行可以出现或从数据集中消失。此选项与在事务中的所有SELECT语句中的所有表上设置NOLOCK具有相同的效果。
这意味着您的任何结果都无法保证包含准确数据。

1

您可以通过设置执行选项在SQL Server Management Studio中完成此操作。(工具>选项>查询执行>SQL Server>高级>设置事务隔离级别>)

NB:这仅适用于从此SSMS实例执行的查询。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接