定义
事务(Transaction)是由对数据库的若干操作组成的一个单元,这些操作要么都完成,要么都取消(如果在操作执行过程中不能完成其中任一操作),从而保证数据修改的一致性,并且在系统出错时确保数据的可恢复性机制。
属性
原子性:对数据的修改,要么都完成,要么都取消。
一致性:事务完成时,保持数据的一致性、完整性。
隔离性:并行事务之间相互隔离。
持久性:事务完成后,对数据所做的所有修改就保存到数据库中。
特点
可保证操作的一致性和可恢复性
可由用户定义,它包括一系列的操作或语句
每一条T-SQL语句都可以是一个事务
在多服务器环境中,可定义分布式事务
事务的模式
三种:显式、隐式和自动提交事务
显式事务是明确地用begin transaction 语句定义事务开始、用commit或 rollback 语句定义事务结束的事务。
事务定义有事务开始和事务结束。事务开始可分为明显定义和不明显定义;事务结束也可分为明显定义和不明显定义。
set implicit_transactions
On: 前一个事务完成时自动启动新事务开始
Off:前一条语句完成时自动启动新事务开始
隐式事务是用set implicit_transactions on 不明显地定义事务开始,用 commit 或 rollback 语句明显地定义事务结束的事务。
自动提交事务
set implicit_transactions 设置为 off 时,设置在前一条语句完成时自动启动新事务开始。如果这条语句能够成功地执行,则提交该语句,否则自动回滚该语句的操作。即每条单独的T-SQL语句都是一个事务,这就是自动事务模式。自动提交事务是SQL Server默认的事务模式。
分布式事务是跨越两个或多个数据库的事务。
事务控制
(1) 设置隐性事务开始模式:
set implicit_transactions on 启动隐性事务模式;
set implicit_transactions off 关闭隐性事务模式。
(2) 设置自动回滚模式:
set xact_abort on 当事务中任一条语句产生运行时错误,整个事务将终止并整体回滚;
set xact_abort off 当事务中语句产生运行时错误,将终止本条语句且只回滚本条语句。
事务控制语句
(1) begin transaction [事务名]
明显定义事务开始
(2) commit transaction [事务名]/ commit [ work ]
提交事务使事务对数据库的修改有效。
(3) rollback transaction [事务名] | [事务保存点]
rollback [ work ]
回滚事务使得事务对数据库的修改无效。
(4) save transaction (事务保存点):
设置保存点,用于回滚部分事务。
(5) 事务控制语句的使用方法:
begin transaction
…… -- A组语句序列
save transaction 保存点1
…… -- B组语句序列
if @@error <> 0
rollback transaction 保存点1 --回滚到保存点1
else
commit transaction
--提交A组语句,同时如果未回滚B组语句则提交B组语句 。
事务中使用的全局变量
@@rowcount上一语句影响的行数;@@trancount当前连接的活动事务数
@@error检测或使用@@error时上一条语句执行时的错误代码。
@@error=0表示执行成功;
事务控制
(1) 声明游标:declare 游标名 cursor for select语句;
(2) 打开游标:open 游标名;
(3) 处理数据:
l 移动当前行并读取数据:fetch 游标名 [into @变量名,…]
l 删除当前行数据:delete from 表或视图名 where current of 游标名
l 修改当前行数据:update from 表或视图名 set 列名=表达式,…
where current of 游标名
(4) 关闭游标:close 游标名;
(5) 释放游标:deallocate 游标名;
|
事务控制语句的使用方法
|
begin transaction -- 事务开始
…… -- A组语句序列
save transaction 保存点1 --定义保存点
…… -- B组语句序列
if @@error <> 0
rollback transaction 保存点1 --回滚到保存点1
else
commit transaction --提交A组语句,同时如果未回滚B组语句则提交B组语句。
|
分享到:
相关推荐
### 数据库事务总结 #### 一、事务的基本概念与特性 **事务**是数据库系统中的一个逻辑工作单元,它由一系列的操作组成,这些操作要么都完成,要么都不完成,以此来保证数据的一致性和完整性。 #### 二、事务的...
本文将对数据库相关的知识点进行详细总结,特别是针对计算机三级数据库考试的内容。 1. 数据库管理系统(DBMS)是操纵和管理数据库,控制数据资源使用的软件,如Oracle、SQL Server、MySQL等。 2. 事务是操作系统...
本资源摘要信息将对数据库系统的基本概念、数据库管理系统、数据模型、数据库设计、数据库恢复、事务处理等方面进行详细的总结和解释。 一、数据库系统的基本概念 * 数据库系统是长期存储在计算机内、有组织、可...
文章最后总结到,为了解决长事务对确定性分布式数据库吞吐量的影响,可以采用以下两种方法:一是在事务抽象层面采用基于数据访问规则的事务处理方式,二是通过事务访问文件来降低缓冲区置换频率。 通过这种综合性的...
总结起来,事务是数据库操作的关键组成部分,它的隔离性、回滚和隐式事务特性确保了数据的一致性和完整性。在处理并发操作和错误恢复时,深入理解和正确使用事务至关重要。在实际开发中,我们需要根据业务需求和性能...
**JDBC连接数据库经验总结** Java Database Connectivity (JDBC) 是Java编程语言中用于与关系数据库交互的标准API。它提供了一种规范,使得Java开发者能够使用标准的Java语句来执行SQL命令,从而实现对数据库的操作...
总结起来,处理多数据源事务需要理解Spring的事务管理机制,包括PlatformTransactionManager接口、自定义注解和AOP的应用,以及事务的一致性模型。通过合理的配置和编程,可以有效地在单个应用程序中管理多数据源的...
数据库是信息技术中的重要组成部分,主要用于存储、管理以及...对于“三级数据库总结”的学习,考生需要对以上知识点有深入理解并能灵活应用。通过系统地复习和实践,可以提高在笔试和机试中的表现,从而提高通过率。
七、数据库安全 1. 用户权限管理:设置不同级别的用户权限,限制对敏感数据的访问。 2. 加密技术:对数据进行加密存储,保护数据安全。 3. 审计跟踪:记录数据库操作,以便监控和审计潜在的安全风险。 以上是对...
### DB2数据库事务日志详解及处理方法 #### 一、引言 在数据库管理领域,尤其是对于IBM DB2这样的大型关系型数据库管理系统而言,事务日志管理是至关重要的环节之一。事务日志用于记录数据库中的所有事务操作,确保...
数据库是任何信息系统的基础,它是组织、存储和管理数据的核心组件。在面试中,数据库相关问题经常出现,因为理解和掌握数据库的原理与操作是IT专业人员必备的技能之一。以下是关于数据库的一些关键知识点: 1. **...
总结起来,C#中的事务处理对于编写健壮、可靠的数据库应用程序至关重要。通过理解事务的原理,掌握在C#中使用ADO.NET处理事务的方法,开发者可以确保数据的安全和一致性,避免数据的不一致性和丢失。提供的"C#中的...
5. 高级特性:学习并掌握存储过程、触发器、事务处理、视图、索引等,提升数据库管理能力。 6. 性能优化:通过分析查询计划、调整索引、优化SQL语句等方式提升数据库性能。 在自我学习过程中,可以通过在线教程、...
3. 数据库事务:事务是数据库操作的逻辑单元,确保数据的一致性和完整性。例如,转账操作必须在两个账户之间同时成功或同时失败。 4. 存储过程和触发器:存储过程是一组预编译的SQL语句,可以提高性能和安全性。...
总结来说,事务处理是数据库系统中保证数据一致性和完整性的核心机制,MySQL通过一系列技术和特性实现了高效且可靠的事务处理。在实际应用中,合理利用事务和其高级特性,可以有效地防止数据错误,保证系统的稳定性...
mysql整理资料上传,包含了DDL(数据库定义语言)、DML(数据库操纵语言)的增删改查,还有DCL(数据库控制语句)以及事务隔离级别、数据库主从的原理和配置,以及一些sql调优的信息等等
总结来说,2022年分布式数据库中的事务管理和恢复是一个涵盖广泛的主题,包括事务定义、特性、执行模型、一致性保证、恢复策略等多个方面。随着技术的发展,这一领域的研究和实践持续深化,以应对日益复杂的分布式...