SQL SERVER隔离

原创 2008年08月03日 13:15:00

 SQL SERVER隔离语句如下:

SET TRANSACTION ISOLATION LEVEL

    { READ UNCOMMITTED

    | READ COMMITTED

    | REPEATABLE READ

    | SNAPSHOT

    | SERIALIZABLE

    }

[ ; ]

 

一次只能设置一个隔离级别选项,而且设置的选项将一直对那个连接始终有效,直到显式更改该选项为止。事务中执行的所有读取操作都会在指定的隔离级别的规则下运行,除非语句的 FROM 子句中的表提示为表指定了其他锁定行为或版本控制行为。

事务从一个隔离级别更改为另一个隔离级别时的锁定行为如下表:

READ UNCOMMITTED

READ UNCOMITTED

未更改。

READ COMMITTED

该行为取决于 READ_COMMITTED_SNAPSHOT 数据库选项的设置:

如果为 OFF,事务将获取共享锁,并在读取期间保留锁。

如果为 ON,事务会使用行版本控制。

SNAPSHOT

事务必须已作为 SNAPSHOT 启动。事务将会失败,并将回滚所有更改。

REPEATABLE READ

现在该事务将获取共享锁,并在事务期间保留锁。

SERIALIZABLE

现在该事务将获取范围锁,并在事务期间保留锁。

READ COMMITTED

READ UNCOMITTED

事务不再获取用于读取操作的锁。

READ COMMITTED

未更改。

SNAPSHOT

事务必须已作为 SNAPSHOT 启动。事务将会失败,并将回滚所有更改。

REPEATABLE READ

现在该事务将获取共享锁,并在事务期间保留锁。

SERIALIZABLE

现在该事务将获取范围锁,并在事务期间保留锁。
SNAPSHOT

READ UNCOMITTED

事务不再使用行版本控制,并且不再获取用于读取操作的锁。

READ COMMITTED

该行为取决于 READ_COMMITTED_SNAPSHOT 数据库选项的设置:

如果为 OFF,事务将获取共享锁,并在读取期间保留锁。

如果为 ON,事务会使用行版本控制。

SNAPSHOT

未更改。

REPEATABLE READ

该事务不再使用行版本控制。现在它获取了共享锁,并在事务执行期间一直保持该锁。

SERIALIZABLE

该事务不再使用行版本控制。现在它获取了范围锁,并在事务执行期间一直保持该锁

REPEATABLE READ

READ UNCOMITTED

该事务在读取操作时不再获取锁。在 REPEATABLE READ 下获取的共享锁保留到事务结束。

READ COMMITTED

该行为取决于 READ_COMMITTED_SNAPSHOT 数据库选项的设置:

如果为 OFF,事务将获取共享锁,并在读取期间保留这些新锁。

如果为 ON,事务会使用行版本控制。

REPEATABLE READ 下获取的共享锁保留到事务结束。

SNAPSHOT

事务必须已作为 SNAPSHOT 启动。事务将会失败,并将回滚所有更改。

REPEATABLE READ

未更改。

SERIALIZABLE

现在该事务将获取范围锁,并在事务期间保留锁。在 REPEATABLE READ 下获取的共享锁保留到事务结束。

示例代码如下:

USE AdventureWorks;

GO

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

GO

BEGIN TRANSACTION;

GO

SELECT *

    FROM HumanResources.EmployeePayHistory;

GO

SELECT *

    FROM HumanResources.Department;

GO

COMMIT TRANSACTION;

GO

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因

原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫。所以花了点时间,把 SQL Server 数据库中...

对SQL Server中read committed隔离级别的全新认识 S X锁

关于锁,有很多可以学习的,比如,锁的粒度,锁的模式,锁的兼容性,以及隔离级别等等。 但是,具体到运行一个语句时,是怎么去获取到相应的锁的呢,比如,一个select语句,那么需要加S锁,可能是对记...

SQL Server 2005事务隔离级别与性能

众所周知,SQL Server事务隔离级别是为了保证在并发事务处理环境下的数据完整性,准确性,一致性的一种机制。在SQL Server 2005 中一共有五种事务隔离级别,分别为:READ UNCOM...

SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因

SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因 原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需...

微软SQL Server事务隔离级别简介

微软SQL Server事务隔离级别简介 数据库的事务隔离级别(TRANSACTION ISOLATION LEVEL)是一个数据库上很基本的一个概念。为什么会有事务隔离级别,SQL Server上...

Sql Server 事务隔离级别的查看及更改

Sql Server 事务隔离级别的查看及更改 根据自身 Sql Server 的情况来自定义 事务隔离级别,将会更加的满足需求,或提升性能。例如,对于逻辑简单的 Sql Serve...
  • wxzyq
  • wxzyq
  • 2011-11-13 10:26
  • 1708

SQL Server 2005事务隔离级别与性能

转自:http://blog.sina.com.cn/s/blog_70b2dd760100lrgk.html 众所周知,SQL Server事务隔离级别是为了保证在并发事务处理环境...

sql server 隔离级别

解决数据库并发读取错乱的途径之一就是使用事务进行操作,并且设置相应的事务隔离级别,现在就解释一下SQL Server的四种隔离级别。 SQL Server的四种隔离级别知识点整理,特别制作了流程图,方...

SQL Server的四种隔离级别知识点

SQL Server的四种隔离级别知识点

SQL Server 事务隔离级别详解

SQL 事务隔离级别 概述      隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用。 步骤 事务隔离级别通过影响读操作来间接地影响写操作;可...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)