sql server中事务回滚的机制是什么?

2024-04-02

sql server中事务回滚的机制是什么?


数据库中的每个更新都会首先将一个条目写入包含更改描述的日志中。例如。如果您将列值从 A 更新到 B,日志将包含更新记录,类似于:在表 T 中,列 C 已从 A 更改为 B,以通过 id I 的事务使用键 K 进行记录。如果您回滚事务时,引擎将开始向后扫描日志,查找事务完成的工作记录,并撤消该工作:当它找到从 A 到 B 的更新记录时,会将值更改回 A。插入将被撤消通过删除插入的行。通过插回该行可以撤消删除操作。这在事务日志逻辑架构 http://msdn.microsoft.com/en-us/library/ms180892.aspx and 预写事务日志 http://msdn.microsoft.com/en-us/library/ms186259.aspx.

这是高层次的解释,具体的内部细节如何发生对于外行来说是没有记录的,并且不受您的检查或更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql server中事务回滚的机制是什么? 的相关文章

  • Crystal Reports 假定存储过程中列的数据类型错误

    Crystal Reports Engine 有时认为从某些存储过程返回的字段实际上是类型的原因是什么money is a varchar 255 因此 我无法应用任何数字格式 你确定你有铸成金钱的领域吗 您最近是否更改了数据类型 并且之后
  • 如何在 T-SQL 中实现 ZIP JOIN?

    假设我有表 Foo Id Color 1 Red 2 Green 3 Blue 4 NULL 和表 Bar Value 1 2 5 我想使用简单的语句创建表 Result 来获取 Id Color Value 1 Red 1 2 Green
  • 使用具有外键的表将数据从 asp.net 页面插入到我的数据库中

    我是一名初学asp net程序员 我的项目是网上购物课程 我有一些问题 我有 4 个表 它们之间有一些外键 CREATE TABLE dbo orderdetails orderid INT NOT NULL classid INT NOT
  • 如何处理用户界面中的数据库约束违规?

    我们使用存储过程在数据库中实现大部分业务规则 我永远无法决定如何最好地将数据约束违规错误从数据库传递回用户界面 我所说的约束更多地与业务规则相关 而不是与数据完整性相关 例如 诸如 无法插入重复的键行 之类的数据库错误与业务规则 不能有多个
  • SQL Server 2008 R2 的 Try_Convert

    我正在使用 SQL Server 2008 R2 并且有一个VARCHAR我想要转换为的列DECIMAL 28 10 using CONVERT 但其中许多行的格式错误 因此无法将它们解析为数字 在这种情况下 我只想通过将结果设置为 0 或
  • Id 或 [TableName]Id 作为主键/实体标识符

    是否首选使用 Id 作为主键的列名或 TableName Id 作为命名约定 表 账户主键 ID 相对 表 账户主键 AccountId 在我见过的实现中 它似乎分为 50 50 左右 每种方法的优点和缺点是什么 跟进 在我的数据库中使用一
  • Visual Studio 2010 与 SQL Server 2012 商业智能的正确安装顺序

    我有一个 Windows 7 64 位 旗舰版 虚拟机 想要安装以下内容 Visual Studio 2010 Ultimate SQL Server 2012 Business Intelligence with SSIS and SSR
  • 使用 Switch 的报告服务表达式

    我无法让这个表达式与报告服务一起使用 我必须使用 IF 和 ELSE IF 语句 感谢您的任何建议 Switch IsNothing Fields field date Value Fields set flag Value 1 Decli
  • 获取家庭成员

    假设以下家庭 其构建架构是 create table PersonConn child int parent int insert into PersonConn values 1 2 insert into PersonConn valu
  • SQL服务器事务

    我需要了解sql server事务 我浏览了谷歌上的一些文章 但我什么也没理解 谁能帮我 您可以通过写入显式启动事务BEGIN TRANSACTION 您可以通过运行来结束事务COMMIT TRANSACTION 之前COMMIT运行时 受
  • 存储过程和权限 - EXECUTE 就足够了吗?

    我有一个 SQL Server 2008 数据库 其中对基础表的所有访问都是通过存储过程完成的 一些存储过程只是从表中选择记录 而其他存储过程则进行 UPDATE INSERT 和 DELETE 如果存储过程更新表 执行存储过程的用户是否也
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下
  • 在 JUnit 中使用 Spring 测试服务时如何回滚数据库事务?

    我测试我的 DAO 和服务没有问题 但是当我测试时INSERTs or UPDATE我想回滚事务而不影响我的数据库 我在用着 Transactional在我的服务中管理交易 我想知道 是否有可能知道事务是否正常 但回滚它以防止更改数据库 这
  • SQL Server 列名区分大小写

    我使用的数据库具有 French CI AS 排序规则 CI 应该代表不区分大小写 但无论如何都是区分大小写的 我试图理解为什么 我断言这一点的原因是 使用 GIVEN 案例设置进行批量插入失败 但使用另一个 Given 案例设置则成功 例
  • C#的数组列表可以用来填充SSIS对象变量吗?

    我已在 C 脚本中填充了一个列表 并将其值分配给 SSIS 对象变量 然后 我使用该对象变量通过循环遍历 For every do 枚举器来执行一些 SQL 查询 我尝试通过 Foreach ado 枚举器执行此操作 但出现错误 X 变量不
  • 临时表是线程安全的吗?

    我正在使用 SQL Server 2000 它的许多存储过程广泛使用临时表 数据库的流量很大 我担心创建和删除临时表的线程安全性 假设我有一个存储过程 它创建了一些临时表 它甚至可以将临时表连接到其他临时表等 并且还可以说两个用户同时执行存
  • 为什么我的 CASE 语句要求 THEN 部分的数据类型为 INT?

    我正在尝试运行一个查询 其中以下 CASE 语句是其中一行 我正在使用报表生成器 3 0 但是 我收到一条错误消息 将 varchar 值 Case 1 转换为 int 数据类型时转换失败 Microsoft SQL Server 错误 2
  • 可以获取SQL Server中当前执行的存储过程的行号吗?

    几年前 我在 Sybase Delphi 环境中工作 使用 BDE 连接到数据库服务器 我们有一个 Delphi 小应用程序 给定当前正在执行的存储过程的名称 它可以告诉您当前正在执行该存储过程的哪一行 这对于调试似乎挂起的存储过程非常有用
  • 如何跨多个表强制执行 CHECK 约束

    我有一个在 Microsoft SQL Server 2012 Express 中记录奶牛繁殖信息的数据库 显然 一头牛只有在出生后才能配种 并且在其一生中可能会配种多次 我需要在我的数据库中强制执行这些约束 我目前已经根据下图安排了一个架
  • SQL 国家字符 (NCHAR) 数据类型的真正用途是什么?

    也CHAR CHARACTER and VARCHAR CHARACTER VARYING SQL 提供了NCHAR NATIONAL CHARACTER and NVARCHAR NATIONAL CHARACTER VARYING 类型

随机推荐

  • Angularjs $http.get 不起作用

    我的目的是使用 AngularJS 中的 REST Web 服务 我现在正在进行一些试验 下面的代码不起作用并抛出以下异常 你能帮我找出问题所在吗 提前致谢 function getUsersFromLocal scope http htt
  • 我可以在 2.1 上编译 Android 应用程序并支持 1.5 及以上的所有版本吗?

    我希望我的 Android 应用程序具有最大的覆盖范围 因此希望支持 V1 5 及以上的所有版本 我发现 V1 5 中缺少的一些功能在 V2 0 或 V2 1 中可用 我可以在 V2 1 上编译 然后设置 minSDK 以使应用程序在 1
  • Django:如何在可重用应用程序中处理导入

    我刚刚开始使用 django 我不太清楚 我应该如何编写一个可以稍后重用的应用程序 在我阅读的每个教程中 我都会看到相同的代码 view py from project app models import MyModel 因此 如果我将应用
  • Windows服务之间如何通信

    我有 2 个使用 C 创建的 Windows 服务 我希望其中一个服务调用第二个 Windows 服务中的函数 我该怎么做呢 EDIT 问题是我必须运行该应用程序 我不需要它们 相反服务进程也很好 但我need这2个应用程序进行通信 这2个
  • 获取 $http 调用的完整调用堆栈跟踪

    假设有人在名为的文件中编写了这样的方法app js尝试对不存在的 url 执行 XHR 请求 app controller MainCtrl function scope http scope send function http get
  • 如何从 Android 中的 Fragment 调用 ArrayAdapter 构造函数

    我正在尝试将两列 ListView 添加到我的 Android 应用程序中 当我创建项目时 我选择了选项 片段 它通过向左和向右滑动来创建漂亮的导航 所以我的MainActivity延伸FragmentActivity 我的问题是 当我尝试
  • 找不到绳线(-bash:绳线:找不到命令)

    我正在尝试使用 twine 在 pypi 上发布我的第一个 python 包 当然会首先添加 test pypi 我遵循了官方指南https packaging python org tutorials packaging projects
  • Freemarker:从模板文件 (*.ftl) 调用静态 util 方法

    在 Freemarker FTL 文件中 我想调用StringUtils capatilize myString 例如 p You selected selectionString p p StringUtils capatilize se
  • 绘制圆形渐变

    我想绘制一个圆形渐变 如下图所示 我可以轻松管理径向渐变 但我不知道如何做圆形渐变 我正在考虑在一条线上绘制渐变 然后将其转换为圆形 这可能吗 这就是我绘制径向渐变的方法 CGFloat a MIN self frame size widt
  • 使用 codeigniter 403 的 Ajax 请求(禁止)

    我正在尝试使用 Ajax 向 Codeigniter 中的控制器文件发送一个值 但没有成功 我已经搜索过这个问题 现在这个问题在这里被提出了很多次 但仍然找不到解决方案 希望任何人都可以帮助我 谢谢 Js file function sub
  • 在堆栈上为 execve 创建一个 arg 数组

    我想编写一个汇编程序 通过 EXECVE 系统调用 0x3C 使用开关 al 执行程序 bin ls 手册页 man 2 execve 指出该调用需要三个值 int execve const char filename char const
  • 通过 http 拉取大型存储库(大小超过 1GB)失败

    存储库的大小超过 1GB 当我拉到 50 时 出现错误 gt remote Counting objects 23891 done remote Compressing objects gt 100 19980 19980 done fat
  • 如何仅在 log4j 中记录警告

    在 Struts 2 应用程序中 我们使用 log4j 进行日志记录 我只想记录警告 但是当我尝试在 log4j properties 中使用时 log4j rootLogger warn stdout 它也打印错误和致命日志 我只想要警告
  • 如何在 Visual Basic .NET 中从 Internet“读取”XML?

    因此 我正在 Visual Basic 2010 中创建一个程序 它将处理来自 Internet 的大约 120 万个 XML 文件 每个文件的 URL 格式如下 website com xmlfeed action number VARI
  • 从 Android Wear 上的日历获取数据

    我正在查询这样的日历数据 Constructor of the class mCursor context getContentResolver query CalendarContract Events CONTENT URI mColu
  • Axios 未传递 Content-Type 标头

    我在后端运行一个 Odoo 实例 并创建了一个公开 Web 控制器的自定义模块 如下所示 网页控制器 coding utf 8 from odoo import http import odoo from odoo http import
  • Linux/Unix 中是否有与 futex 等效的东西?

    我正在寻找可以用来做的东西polling like select kqueue epoll即不忙轮询 在 C C 中 换句话说 我需要阻塞一个线程 然后在另一个线程中唤醒它尽可能少的开销 A mutex condition variable
  • iOS Playground 中的 NSUserDefaults

    iOS Playgrounds 似乎有一个奇怪的问题NSUserDefaults总是返回nil而不是实际值 在 iOS Playground 中 最后一行错误地返回nil import UIKit let defaults NSUserDe
  • 如何升级现有的 Flutter 应用?

    我有一个半年前构建的现有 Flutter 应用程序 我查了一下pubspec lock 它有这一行 sdks dart gt 2 10 0 110 lt 2 11 0 flutter gt 1 16 0 lt 2 0 0 所以我假设该应用程
  • sql server中事务回滚的机制是什么?

    sql server中事务回滚的机制是什么 数据库中的每个更新都会首先将一个条目写入包含更改描述的日志中 例如 如果您将列值从 A 更新到 B 日志将包含更新记录 类似于 在表 T 中 列 C 已从 A 更改为 B 以通过 id I 的事务