Sql Server中的事务介绍

所属分类: 数据库 / MsSql 阅读数: 792
收藏 0 赞 0 分享

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--错误数量默认为0
update 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 @errorsum<>0--判断是否出现错误的情况
begin

print '有错误,回滚'

rollback tran--出现错误,回滚
end
else
begin

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

更多精彩内容其他人还在看

SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题

这篇文章主要介绍了SQLServer 2012中设置AlwaysOn解决网络抖动导致的提交延迟问题,需要的朋友可以参考下
收藏 0 赞 0 分享

Sql Server中的系统视图详细介绍

这篇文章主要介绍了Sql Server中的系统视图详细介绍,本文讲解了系统视图是干什么呢、都定义在哪呢、一些使用例子等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

深入理解Sql Server中的表扫描

这篇文章主要介绍了深入理解Sql Server中的表扫描,本文讲解了表扫描的相关知识、表扫描的运行原理等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

理解Sql Server中的聚集索引

这篇文章主要介绍了理解Sql Server中的聚集索引,本文讲解了聚集索引的作用、聚集索引的运行原理等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

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

这篇文章主要介绍了Sql Server中的非聚集索引详细介,本文讲解了非聚集索引为什么能提速这么快、什么是RID、非聚集索引的运行原理等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

Sql Server中的DBCC命令详细介绍

这篇文章主要介绍了Sql Server中的DBCC命令详细介绍,本文讲解了什么是DBCC、DBCC到底有多少个命令、如何记住DBCC命令、常用命令的实践等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

SQL Server中将查询结果转换为Json格式脚本分享

这篇文章主要介绍了SQL Server中将查询结果转换为Json格式脚本分享,本文直接给出实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

SQL Server中将数据导出为XML和Json方法分享

这篇文章主要介绍了SQL Server中将数据导出为XML和Json方法分享,本文使用PowerShell中的BCP命令实现导出为文件,需要的朋友可以参考下
收藏 0 赞 0 分享

Select count(*)、Count(1)和Count(列)的区别及执行方式

这篇文章主要介绍了Select count(*)、Count(1)和Count(列)的区别及执行方式,很多人其实对这三者之间是区分不清的,本文会阐述这三者的作用、关系以及背后的原理,需要的朋友可以参考下
收藏 0 赞 0 分享

调整SQLServer2000运行中数据库结构

这篇文章主要介绍了调整SQLServer2000运行中数据库结构,十分实用的一个功能,这里推荐给大家,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享
查看更多