百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

SQL Server中的事务(附有实例)(sql server2000中事务的类型有)

toyiye 2024-08-29 00:17 5 浏览 0 评论

一、事务

定义:

例如:

在银行活动中,“由账户A转移资金额X到账户B”是一个典型的银行数据库业

务。这个业务可以分解为两个动作:

1)从账户A中减掉金额X

2)在账户B中加入金额X

这两个动作应当构成一个不可分割的整体,要么完成其中的所有动作,要么不执

行其中任何动作,二者必居其一。这两个动作就是一种“不可分割”的业务单

位 。一旦某个环节失败,就需要回滚(恢复到初始状态)

事务的ACID特性:

1) 原子性(Atomicity)

2)一致性(Consistency)

3) 隔离性(Isolation)

4)持续性(Durability )

在SQL Server中数据库分三种:

自动提交事务:这是 SQL Server 的默认模式,它将每条单独的 T-SQL 语句视为

一个事务,如果成功执行,则自动提交;如果错误,则自动回滚。

如:

一旦执行失败,自动回滚

显示事务:用BEGIN TRANSACTION明确指定事务的开始,这是最常用的事务类

型。

隐性事务:通过设置SET IMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设

置为打开,下一个语句自动启动一个新事务(不需要BEGIN TRANSACTION),每

个事务仍以COMMIT或ROLLBACK语句显式完成。再下一个 Transact-SQL 语句又将

启动一个新事务。

通过SET IMPLICIT_TRANSACTIONS OFF把隐性事务模式关闭。 (隐形事务会占

用大量资源,一般都不推荐使用)

T-SQL使用下列语句来管理事务:

开始事务:BEGIN TRANSACTION

提交事务:COMMIT TRANSACTION

回滚(撤销)事务:ROLLBACK TRANSACTION

存储点语句:SAVE TRANSACTION

所谓事务存储点就是在事务过程当中插入若干个标记,当事务执行中出现错误时,可

以不撤销整个事务,只是撤销部分事务,将事务退回到某个事物存储点。一旦事务提

交或回滚,则事务结束。

例如:

/*

创建一个事务,把学号为00015的选修课程号003改为001、选修课程号004改为

006,以上两个操作任意一个操作失败,事务回滚,查看事务执行结果。

*/

begin transaction t1_student
update sc
set CNo='001'
where SNo='00015' and CNo='003'
update sc
set CNo='006'
where SNo='00015' and CNo='004'
if @@ERROR!=0
 rollback transaction
 else
commit transaction t_student

/*创建一个事务,把学号为00015的的选修课程号003改为001、选修课程号004改为

006,第一个操作失败,事务回滚,成功则设定为保存点,第二个操作失败,则事务

回滚,查看事务执行结果。*/

begin transaction t_student
update sc
set CNo='001'
where SNo='00015' and CNo='003'
if @@ERROR!=0
 rollback transaction
save transaction t_student
update sc
set CNo='006'
where SNo='00015' and CNo='004'
if @@ERROR!=0
 rollback transaction t_student
 else
commit transaction t_student

/*

启动隐式事务,更新成绩后跟新课程号,然后关闭隐式事务

*/

set implicit_transactions on use SM
UPDATE SC
SET Score=score+1
WHERE SNO='00001' AND CNO='001'
UPDATE SC
SET CNO='008'
WHERE SNO='00001' AND CNO='001'
commit transaction
set implicit_transactions off

还有就是这我总结出了一些架构视频资料和互联网公司java程序员面试涉及到的绝大部分面试题和答案做成了文档和架构视频资料还有完整高清的java进阶架构学习思维导图免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

资料领取方式:关注 私信关键字【资料】即可免费获取!!!

如果您喜欢本文章,可以点击关注,每天将有更多精彩文章与您分享!

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码