SQL语句 事务

2018-11-26

说明:灰色部分为事务前铺垫操作,黑色部分为事务操作

以下介绍的是(显式事务)

/*建库*/

USE master

GO

IF EXISTS(SELECT * FROM SYSDATABASES WHERE NAME="bankDB")

DROP DATABASE bankDB

EXEC XP_CMDSHELL "MD D:\BANK" --创建存放数据库文件夹

CREATE DATABASE bankDB

ON

(

NAME = "bankDB_data",

FILENAME = "D:\BANK\bankDB_data.MDF",

SIZE = 10MB,

FILEGROWTH = 15%

)

LOG ON

(

NAME = "bankDB_LOG",

FILENAME = "D:\BANK\bankDB_LOG.LDF",

SIZE = 10MB,

FILEGROWTH = 15%

)

GO

/*建表*/

USE bankDB

GO

IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME = "TEST")

DROP TABLE TEST

CREATE TABLE TEST

(

TNAME VARCHAR(8) NOT NULL PRIMARY KEY, --主键

TYUER MONEY CHECK (TYUER>=1) --存款余额不能小于1

)

GO

--为表插入数据

INSERT TEST VALUES ("A",1000)

INSERT TEST VALUES ("B",1)

GO

/*事务*/

BEGIN TRANSACTION--开始事务

DECLARE @errorSun INT --定义错误计数器

SET @errorSun=0 --没错为0

UPDATE TEST SET TYUER=TYUER-10 WHERE TNAME="A" --事务操作SQL语句

SET @errorSun=@errorSun+@@ERROR --累计是否有错

UPDATE TEST SET TYUER=TYUER+10 WHERE TNAME="B" --事务操作SQL语句

SET @errorSun=@errorSun+@@ERROR --累计是否有错

IF @errorSun<>0

BEGIN

PRINT "有错误,回滚"

ROLLBACK TRANSACTION--事务回滚语句

END

ELSE

BEGIN

PRINT "成功,提交"

COMMIT TRANSACTION--事务提交语句

END

GO

总结:

1.什么是事务:事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时事务是做为最小的控制单元来使用的。他包含的所有数据库操作命令作为一个整体一起向系提交或撤消,这一组数据库操作命令要么都执行,要么都不执行。

2.事务的语句

开始事物:BEGIN TRANSACTION

提交事物:COMMIT TRANSACTION

回滚事务:ROLLBACK TRANSACTION

3.事务的4个属性

①原子性(Atomicity):事务中的所有元素作为一个整体提交或回滚,事务的个元素是不可分的,事务是一个完整操作。

②一致性(Consistemcy):事物完成时,数据必须是一致的,也就是说,和事物开始之前,数据存储中的数据处于一致状态。保证数据的无损。

③隔离性(Isolation):对数据进行修改的多个事务是彼此隔离的。这表明事务必须是独立的,不应该以任何方式以来于或影响其他事务。

④持久性(Durability):事务完成之后,它对于系统的影响是永久的,该修改即使出现系统故障也将一直保留,真实的修改了数据库

4.事务的保存点

SAVE TRANSACTION 保存点名称 --自定义保存点的名称和位置

ROLLBACK TRANSACTION 保存点名称 --回滚到自定义的保存点

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif

mysql 事务 sql语句_SQL语句 事务相关推荐

  1. mysql种default约束的语句_sql语句大全之SQL DEFAULT 约束

    SQL DEFAULT约束 DEFAULT 约束用于向列中插入默认值. 如果没有规定其他的值,那么会将默认值添加到所有的新纪录. SQL DEFAULT Constraint on CREATE TA ...

  2. mysql数据库加锁语句_sql语句对数据库表进行加锁和解锁

    锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性. 我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象.即如果没有锁定且多个用户同时访问一个数据库 ...

  3. mysql单引号转义_sql语句中使用单引号'作为转义字符

    在SQL中,我们都知道单引号 ' 表示字符串的开始和结束符号,如: select * from students where name = '小明'; 但如果字符串里面有单引号时,应该怎么查询呢? 这 ...

  4. mysql高效率sql统计_SQl多表查询优化 高效率SQL语句

    这个功能大大地提高了SQL的执行性能并节省了内存的使用:我们发现,单表数据的统计比多表统计的速度完全是两个概念.单表统计可能只要0.02秒,但是2张表联合统计就可能要几十表了.这是因为ORACLE只对 ...

  5. 视图的重命名mysql语句_sql语句重命名字段-视图重命名sql语句-数据库重命名sql语句...

    sql语句如何重命名表名和列名? 一.更改数据库名 sp_renamedb 更改数据库的名称. 语法: sp_renamedb [ @dbname = ] ' old_name ' , [ @newn ...

  6. c语言解析sql语句_sql语句面试50题(Mysql版附解析)

    本人最近在自学sql,从开始学到自己写完本练习50题大概花了12天的时间. 学习路径:<sql基础教程>第1遍(3天)→知乎中的sql网课+leetcode刷题(4天)→牛客网刷题(2天) ...

  7. mysql判断表存在的sql语句_SQL 语句判断已知表是否存在_MySQL

    问:怎样用SQL语句来判断已知表是否存在? 答:具体解决方法如下: 注释:以下代码为通常的引用Dao做的一模块 以下为引用的内容: Function fExistTable(strTableName ...

  8. mysql连表的sql语句_sql语句之连表操作

    内连接 select * from employee inner join department on employee.dep_id = department.id 左连接 在内连接的基础上保留左表 ...

  9. mysql+sql+子查询语句_SQL语句:子查询

    一,子查询简介: 子查询就是嵌套在主查询中的查询. 子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.ORDER BY.但并不是每个位置嵌套子查询都是有意义并实用的. 子查询必 ...

最新文章

  1. spring MVC 返回json
  2. 归并排序模板(附求逆序对)
  3. latex表格的整理是需要一定的时间的
  4. StackExchange.Redis通用封装类分享(转)
  5. 【计算机组成原理】补码的加减运算方法
  6. mongdb2008puls4.0.3安装_Mathematica 10.3安装教程
  7. ps中如何同图层获取css代码
  8. redis 6.0 redis-proxy搭建
  9. android keyevent.java,dispatchKeyEvent简单理解
  10. java 并发线程池的理解和使用
  11. Numpy_where
  12. java简单入门教程_史上最快速最简单的java入门教程
  13. c语言是高级编程语言吗,C语言是高级编程语言吗?
  14. 深入浅出的mysql第三版和第二版的区别_1.高性能MySQL(第3版) 2. 深入浅出MySQL 合集 完整版 高清...
  15. php 车牌号 正则,php正则验证车牌格式的函数
  16. leetcode 718 最长公共子串
  17. Photoshop 2022下载安装+6大新功能教程初体验
  18. 教育企业邮箱购买哪个好用,还有英文邮件系统?
  19. Qt Visual Studio生成moc文件
  20. Spark Basics

热门文章

  1. 工厂人员定位系统源码,支持智能考勤、工时统计、行为检测、历史轨迹回放、人员管理、电子围栏功能
  2. ISAKMP Profile技术应用
  3. 迅雷重启IPO小米讲新故事
  4. 43岁张曼玉回春疑整容(组图)
  5. CentOS7 安装 webpack
  6. Qt编写控件属性设计器11-导入xml
  7. 解决JS中URL中文乱码-解码
  8. Java如何获得IP和真实地址
  9. 【钉钉小程序】报错提示“无跨域调用权限”
  10. Centos挂载磁盘到旧目录