隔离级别 ●在SQL标准中定义了下列四种隔离级别,SQL Server支持所有这些隔离级别: 未提交读( READ UNCOMMITTED):事务隔离的最 低级别,仅可保证不读取物理损坏的数据,这是四个隔 离级别中限制最小的级别。 提交读( READ COMMITTED): SQL Server默认级 别,可以保证不读取“脏”数据。 可重复读( REPEATABLE READ):可以保证读一致 性,避免不一致分析问题 可串行化(SER|AL| ZABLE):事务隔离的最高级别, 事务之间完全隔离;如果事务在可串行化隔离级别上运 行,则可以保证任何并发重叠事务均是串行的
隔离级别 ⚫ 在SQL标准中定义了下列四种隔离级别,SQL Server支持所有这些隔离级别: – 未提交读(READ UNCOMMITTED):事务隔离的最 低级别,仅可保证不读取物理损坏的数据,这是四个隔 离级别中限制最小的级别。 – 提交读(READ COMMITTED):SQL Server默认级 别,可以保证不读取“脏”数据。 – 可重复读(REPEATABLE READ):可以保证读一致 性,避免不一致分析问题。 – 可串行化(SERIALIZABLE):事务隔离的最高级别, 事务之间完全隔离;如果事务在可串行化隔离级别上运 行,则可以保证任何并发重叠事务均是串行的
隔离级别 四种隔离级别所允许的不同类型的行为 隔离級别 脏读 不可更复读 幻像 未提交读 提交读 可重复读 是否否否 是是否否 是是是否 可串行化 事务必须运行于可重复读或更高的隔离级别才可以 防止丢失更新
隔离级别 四种隔离级别所允许的不同类型的行为 事务必须运行于可重复读或更高的隔离级别才可以 防止丢失更新
隔离级别 ●设置隔离级别的命令是: SET TRANSACTION ISOLATION LEVEL I READ COMMITTED I READ UNCOMMITTED REPEATABLE READ SERIALIZABLE J
隔离级别 ⚫ 设置隔离级别的命令是: SET TRANSACTION ISOLATION LEVEL { READ COMMITTED | READ UNCOMMITTED | REPEATABLE READ | SERIALIZABLE }
SQL对事务的支持 开始事务 结東事务 事务保存点 ●隐含事务与自动提交
SQL对事务的支持 ⚫ 开始事务 ⚫ 结束事务 ⚫ 事务保存点 ⚫ 隐含事务与自动提交
开始事务 ●使用 BEGIN TRANSACTION命令显式说明一个 事务开始,它说明了对数据库进行操作的一个单 元的起始点。在事务完成之前出现任何操作错误 和故障,都可以撤销事务,使事务回退到这个起 始点
开始事务 ⚫ 使用BEGIN TRANSACTION命令显式说明一个 事务开始,它说明了对数据库进行操作的一个单 元的起始点。在事务完成之前出现任何操作错误 和故障,都可以撤销事务,使事务回退到这个起 始点