隔离级别-SQL Server

时间:2018-07-23 10:21:02

标签: sql sql-server transactions isolation-level

如果我正在使用

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

我需要将查询包装在事务中吗

例如

BEGIN TRANS
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT * FROM
T1
COMMIT

或者我可以进行常规查询吗?

此外,包括SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED和WITH(NOLOCK)是否有任何好处。我知道一种用于表级别,一种用于整个连接级别。但是同时拥有它们有什么好处吗?

例如:

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    SELECT * FROM
    T1 WITH (NOLOCK)

1 个答案:

答案 0 :(得分:1)

总是用READ COMMITTED ISOLATION LEVEL执行INSERT,UPDATE和DELETE事务的过程。如果我们需要任何表中的脏数据,那么它会有所帮助。因为Transaction是用READ COMMITTED定义的,并且表使用JOIN查询中的WITH(NOLOCK)返回脏读。

相关问题