SQL—— 事务

简介: 原文:SQL—— 事务 SQL 事务:   1.  定义:  事务是作为单个逻辑单元执行的一系列操作。 多个操作作为一个整体向系统提交,要么执行、要么都不执行,事务是一个不可分割的工作逻辑单元。
原文: SQL—— 事务

 SQL 事务:

 

1.  定义: 

事务是作为单个逻辑单元执行的一系列操作。 多个操作作为一个整体向系统提交,要么执行、要么都不执行,事务是一个不可分割的工作逻辑单元。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、保险公司以及证券交易系统等。

 

2. 事务必须具备的特性: 

   1) 原子性:  Atomicity  :事务是一个完整的操作, 个元素是不可再分的。事务中所以元素必须作为一个整体提交或回滚。如果十五中任何元素失败,则整个事务将失败。

   2)一致性: Consistency: 当事务完成时,数据必须处于一致状态。

   3)隔离性: Lsolation: 对数据进行修改的所有并发事务是彼此隔离的,它不以任何方式依赖或影响其他事务。

   4)持久性: 不管系统是否发生了故障,事务处理的结果都是永久性的。

 

3. 如何执行事务:

    1)开始事务:  begin  transaction

    2)  提交事务: commit transaction

    3)  回滚事务: rollback transaction

 

4. 事务分类

    1) 显示事务: 用begin transaction 明确指定事务的开始

    2) 隐式事务: 通过设置 set implicit_transactions on 语句,将隐式事务模式设置为打开。当以隐式事务模式操作时,SQlServer将在提交或回滚事务后自动启动新事务。不需要描述每个事务的开始,只要提交或回滚每个事务即可。

    3) 自动提交事务: 这是SQL Server的默认模式,它将每条单独的T-SQL语句视为一个事务。如果成功执行,则自动提交。如果错误,则自动回滚。

 

5. 示例

   XXXXXX  业务逻辑

 

  begin transaction  --开始事务

   declare @error  int  --定义变量,累积事务执行过程中的错误

   set @error = 0

   ----- 执行语句1

    set  @error = @error + @@error  --累积错误

   ---- 执行语句2

    set  @error = @error + @@error  --累积错误

   ------

   

   --判断

   if  @error <> 0  --有误

     begin

    print  '回滚事务'

           rollback  transaction

     end

   else  

     begin

    print  '提交事务'

           commit transaction

     end

  

 

   

    

目录
相关文章
|
SQL 存储 数据库
sql事务、视图和索引
sql事务、视图和索引
|
12月前
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
SQL 数据库 数据安全/隐私保护
SQL Server数据库Owner导致事务复制log reader job无法启动的解决办法
【8月更文挑战第14天】解决SQL Server事务复制Log Reader作业因数据库所有者问题无法启动的方法:首先验证数据库所有者是否有效并具足够权限;若非,使用`ALTER AUTHORIZATION`更改为有效登录名。其次,确认Log Reader使用的登录名拥有读取事务日志所需的角色权限。还需检查复制配置是否准确无误,并验证Log Reader代理的连接信息及参数。重启SQL Server Agent服务或手动启动Log Reader作业亦可能解决问题。最后,审查SQL Server错误日志及Windows事件查看器以获取更多线索。
357 0
|
SQL 关系型数据库 MySQL
数据库基本概念(SQL,索引,视图,事务,日志等)(二)
数据库基本概念(SQL,索引,视图,事务,日志等)(二)
646 0
|
SQL 存储 数据库
|
SQL 数据库 索引
SQL中如何实现事务?
【6月更文挑战第17天】SQL中如何实现事务?
231 2
|
SQL 关系型数据库 MySQL
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
228 5
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
831 0
|
SQL 监控 供应链
|
SQL 关系型数据库 MySQL
SQL Server 事务执行、回滚
SQL Server 事务执行、回滚
215 0