当前位置: 首页 > 编程笔记 >

Sql Server中的事务介绍

昝成弘
2023-03-14
本文向大家介绍Sql Server中的事务介绍,包括了Sql Server中的事务介绍的使用技巧和注意事项,需要的朋友参考一下

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 复制中将大事务分成小事务分发的方法,包括了SqlServer 复制中将大事务分成小事务分发的方法的使用技巧和注意事项,需要的朋友参考一下 在sql server 复制中,当在发布数据库执行1个大事务时,如一次性操作 十万或百万以上的数据。当操作数据在发布数据库执行完成后 ,日志读取器代理将扫描事务日志,一次性传递到分发数据库中。若上个事务未传递完成,连续执行多个事

  • 本文向大家介绍sqlserver禁止management studio的自动提交事务,包括了sqlserver禁止management studio的自动提交事务的使用技巧和注意事项,需要的朋友参考一下 自动提交事务 默认management studio是自动提交事务,即一个语句就一个事务。 隐式事务 打开Sql Server Managerment Studio,登陆到实例当中。 Tools

  • 问题内容: 我正在尝试在SQLServer中聚合“ STRING”字段。我想找到与Oracle中相同的函数LISTAGG。 您知道如何执行相同的功能或其他方法吗? 例如, 我希望这个查询的结果是 问题答案: 从SQL Server 2017开始,该功能可用,从而大大简化了逻辑: 在SQL Server中,您可以用来获取结果:

  • 本文向大家介绍Sqlserver事务备份和还原的实例代码(必看),包括了Sqlserver事务备份和还原的实例代码(必看)的使用技巧和注意事项,需要的朋友参考一下 废话不多说,直接上代码 以上这篇Sqlserver事务备份和还原的实例代码(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 是否可以在 SQL SERVER 中的事务中使用 SELECT 语句锁定行?我想锁定该行,以便外部的其他事务无法访问该行。 提交或回滚事务后,应释放该行。这就是我的意思。。。 有人有建议吗?我应该执行 UPDATE 语句来锁定该行吗? 请不要将此问题标记为重复问题。因为,我不是在问UPDATE语句,而是在问SELECT 编辑:我试图“设置事务隔离级别串行化”,但这锁定了太多东西。我的SP很大,它有

  • 17.1 Spring Framework事务管理介绍 全面的事务支持是使用Spring Framework最有说服力的理由中的一个。Spring Framework为事务管理提供了一致的抽象,带来如下的好处: 跨越Java事务API(JTA)、Hibernate、Java持久化API(JPA)和Java数据对象(JDO)等不同事务API的一致的编程模型。 支持声明式事务管理 比复杂的事务API(