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

时间:2015-12-29 12:30:38

标签: sql sql-server sql-server-2012

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

我原以为可以通过编辑配置文件或更改注册表来完成,但我还没能找到任何会改变它的东西。

4 个答案:

答案 0 :(得分:3)

据我所知,您无法更改默认锁定级别。

对于具有大量读取和较少写入的工作负载,您可以避免使用multiversion concurrency control阻止查询。这是Postgres和Oracle的默认值。在SQL Server中,MVCC称为"read committed snapshot",您可以使用以下命令启用它:

ALTER DATABASE YourDb SET READ_COMMITTED_SNAPSHOT ON;

答案 1 :(得分:2)

你做不到。所有SQL Server数据库的默认隔离级别为Read Committed,如果要使用默认级别以外的级别,则唯一的选择是在会话中设置隔离级别。

您还可以在存储过程体中设置 SET TRANSACTION ISOLATION LEVEL

答案 2 :(得分:2)

你不能这样做。我相信你知道的;使用READ UNCOMMITTED隔离级别时应该小心。来自MSDN

  

设置此选项后,可以读取未提交的内容   修改,称为脏读。数据中的值可以是   更改并且行可以在数据集中出现或消失   交易结束。此选项与设置具有相同的效果   对事务中所有SELECT语句中的所有表执行NOLOCK。

这意味着您的结果不会保证包含准确的数据。

答案 3 :(得分:0)

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

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

enter image description here