使用SQL Server的范围是什么"设置事务隔离级别read uncommitted"

时间:2014-08-10 07:25:00

标签: sql sql-server

我想问一下使用

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

在SQL Server 2008中。

我在Winforms中有一个系统,可以通过选择查询从数据库中获取一些数据。

当我在来自我的C#代码的select查询中使用此语句时,是否会影响将在其后运行的其他选择查询?我应该以某种方式重置此声明,如果是,我该如何重置它?我应该使用

SET TRANSACTION ISOLATION LEVEL READ COMMITTED

在我使用READ UNCOMMITTED语句的每个查询之后?

我希望此声明仅与我需要的特定查询相关。

1 个答案:

答案 0 :(得分:1)

与范围相关的documentation部分:

  • 一次只能设置一个隔离级别选项,并且该连接保持设置,直到明确更改为止。
  • 如果在存储过程或触发器中发出SET TRANSACTION ISOLATION LEVEL,则当对象返回控件时,隔离级别将重置为调用对象时生效的级别。
  • 用户定义函数公共语言运行时(CLR)用户定义类型无法执行SET TRANSACTION ISOLATION LEVEL。

是的。它将“影响将在之后运行的其他选择查询”。您应该更改ISOLATION LEVEL或仅针对该特定查询使用table hints

SELECT Column1 FROM Table1 WITH (READUNCOMMITTED)