Sql Server中的事务介绍

日期:2020-05-07编辑作者:数据库

1.什么是事务:事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时事务是做为最小的控制单元来使用的。

他包含的所有数据库操作命令作为一个整体一起向系提交或撤消,这一组数据库操作命令要么都执行,要么都不执行。

事务是一个不可分割的工作逻辑单元

2.事务的分类. 按事务的启动与执行方式,可以将事务分为3类: ①显示事务 :也称之为用户定义或用户指定的事务,即可以显式地定义启动和结束的事务。分布式事务属于显示事务 ②自动提交事务:默认事务管理模式。如果一个语句成功地完成,则提交该语句;如果遇到错误,则回滚该语句。 ③隐性事务:当连接以此模式进行操作时,sql将在提交或回滚当前事务后自动启动新事务。无须描述事务的开始,只需提交或回滚每个事务。它生成连续的事务链。

3.事务的语句开始事物:BEGIN TRANSACTION(简写tran)提交事物:COMMIT TRANSACTION回滚事务:ROLLBACK TRANSACTION

注:一旦事务提交或回滚,则事务结束

4.事务的4个特性 ①原子性(Atomicity):事务中的所有元素作为一个整体提交或回滚,是不可折分的,事务是一个完整的操作。 ②一致性(Consistemcy):事物完成时,数据必须是一致的,也就是说,和事物开始之前,数据存储中的数据处于一致状态。保证数据的无损。 ③隔离性(Isolation):对数据进行修改的多个事务是彼此隔离的。这表明事务必须是独立的,不应该以任何方式来影响其他事务。 ④持久性(Durability):事务完成之后,它对于系统的影响是永久的,该修改即使出现系统故障也将一直保留,真实的修改了数据库。

5.实例

@@error:全局变量,记录错误号,对错误进行累计复制代码 代码如下:begin tran--开始事务declare @errorsum int--定义变量记录错误的数量 set @errorsum=0--错误数量默认为0update dbo.OfficeRent set CreateTime=GETDATE() where Id=2 --持续Sql语句set @errorsum+=@@ERROR--累计是否有错

update dbo.OfficeRent set Hits+=1 where Id=2 --持续Sql语句set @errorsum+=@@ERROR--累计是否有错

if @errorsum0--判断是否出现错误的情况begin

print '有错误,回滚'

rollback tran--出现错误,回滚endelsebegin

print '成功,提交'commit tran--提交事务end

6.以下操作不能用事务

创建数据库 create database修改数据库 alter database删除数据库 drop database恢复数据库 restore database加载数据库 load database备份日志文件 backup log恢复日志文件 restore log更新统计数据 update statitics授权操作 grant复制事务日志 dump tran磁盘初始化 disk init更新使用sp_configure后的系统配置 reconfigure

本文由www.129028.com金沙发布于数据库,转载请注明出处:Sql Server中的事务介绍

关键词:

Sql Server中的非聚集索引详细介

这篇我们来解开神秘面纱。 3:通过最后的槽位列表,可以得知173号索引页上存放着8条索引记录。 复制代码 代码如下...

详细>>

必须会的SQL语句(一) 创建数据库与删除数据库【www.129028.com金沙

1.创建数据库 drop命令用于删除数据库。 Create database 名称on primary{ name ='名称', filename ='c:xx名称.mdf', size = 10mb, --数据库...

详细>>

SqlServer提示“列前缀tempdb.无效: 未指定表名”问题解决方案www

在查询凭证、审核凭证时出现“列前缀tempdb.无效:未指定表名”的错误提示,怎么解决? 本文我们总结了几个在安装...

详细>>

【www.129028.com金沙】SQL Server中将查询结果转换为Json格式脚本分享

脚本源码: 复制代码 代码如下:SET ANSI_NULLS ONGOSETQUOTED_IDENTIFIER ONGOCREATEPROCEDURE[dbo].[SerializeJSON](@ParameterSQL ASVARCHAR(MAX)...

详细>>