同时提交同时回滚的问题,原题是如果没有卡的信息或是卡里没有钱就不做插入操作;
create procedure myP
as
begin tran
update db1.dbo.tableA
set qty =qty-10
if @eeror<>0
rollback
else
update db2.dbo.tableB
set qty=qty+10
end
if @error<>0
rollback
else
commit tran
----exec myP
2:delcare @er1 int,@er2 int
BEGIN TRANSACTION
Update table1......
select @er1=@@error
Update table2......
select @er2=@@error
if @er1=0 and @er2=0
COMMIT TRANSACTION
else
ROLLBACK TRANSACTION
3:db1和db2在不同的机器上,db1和db2之间作个链接服务器就可以了。使用链接服务器的效果是不是等同于分布式事务呢?
按照各位高手的回复来看,与基于一台服务器的实现方式类似,利用了事务,
那么这个事务是分布式的吗?需要MTS的协助吗?
做服务器连接用sp_addlinkedserver
假设以下操作在DB2所在的服务器上进行
sp_addlinkedserver 'db1ServerName',N'SQL Server'
go
create procedure YourProcedureName
as
declare @DB1Err int
begin tran
insert db1ServerName.DB1..表名 values (....)
set @DB1Err=@@error
insert DB2..表名 values (....)
if @DB1Err<>0 or @@error<>0
rollback tran
commit tran
go
分享到:
相关推荐
JAVA设置手动提交事务、回滚事务、提交事务的操作详解 本文主要介绍了JAVA设置手动提交事务、回滚事务、提交事务的操作,涉及到事务的自动提交、手动提交、回滚和提交等操作。以下是对这些操作的详细解释和示例代码...
git 删除分支和回滚的实例详解 【git 删除本地分支】 ...git reset --hard HEAD~3:将最近3次的提交回滚 【远程代码库回滚】: 这个是重点要说的内容,过程比本地回滚要复杂 应用场景:自动部署系统发布后发现问题
Java-JDBC【之】事务介绍、事务特性、操作事务(事务提交、异常回滚) 1.数据库事务 1.1.介绍 1.2.事务特性(ACID) 1.3.隔离性(Isolation),带来的问题与处理 1.4.JDBC事务处理 2.事务提交(代码实现) 3.异常...
本文将介绍 Oracle 回滚段的概念、用法和规划,并提供多种解决回滚段使用率过高的问题的方法。 一、回滚段概述 回滚段是一种特殊的表空间,它用于存放数据修改之前的值。回滚段的头部包含正在使用的该回滚段事务的...
让我们深入探讨一下标题和描述中提到的“事物例子(构件,开始,提交,回滚)”以及相关的C#知识点。 首先,"构件"(Component)在.NET Framework中指的是System.ComponentModel命名空间下的Component类,它是所有可托管...
2. **事务恢复**:如果在事务处理过程中发生例程失败,Oracle会在下次打开数据库时利用重做日志文件中的回滚段信息来恢复未提交的数据。 3. **读一致性**:回滚段确保了在并发环境中,不同的会话看到的数据是一致的...
当一个事务提交或回滚后,其相关的回滚段信息将被清除。回滚段是Oracle数据库中事务恢复的核心组件之一。 #### 二、回滚段的用法 ##### 1. 回滚段的基本用法 在Oracle数据库中,可以通过以下方式创建一个回滚段:...
3. **提交或回滚事务**:如果所有操作都成功,调用`transaction.Commit()`来提交事务。如果在任何时候发生错误,调用`transaction.Rollback()`来撤销所有操作。在上面的`try-catch`块中,你可以这样处理: ```...
2. 事务恢复:在系统故障导致的例程失败后,Oracle会利用重做日志文件中的回滚信息,在下次打开数据库时恢复未提交的事务。 3. 读一致性:Oracle通过回滚段确保在事务执行过程中,其他会话看不到未提交的修改,保证...
- **手动提交模式**:关闭自动提交后,需要程序员显式调用`Connection`对象的`commit()`方法来提交事务,或者在出现问题时调用`rollback()`方法回滚事务。 2. **开启事务** 在JDBC中,可以使用`Connection`对象的...
在MySQL数据库中,事务是确保数据一致性的重要机制,它允许我们执行一组数据库操作,并在所有操作都成功时将其提交,或者在任何操作失败时回滚整个事务,从而撤销所有更改。本实例将深入探讨如何在MySQL中实现事务的...
在探讨“SQL写了回滚...通过以上分析,我们可以看到,事务回滚无效的问题往往与错误处理机制、事务管理以及数据库配置有关。解决这些问题需要对SQL事务有深入的理解,并结合具体的应用场景进行细致的代码设计和调试。
3. **事务提交**:事务提交时,回滚段中的事务标记为已提交,日志缓冲区中的日志必须被写入磁盘。如果数据缓冲区中的数据已被写入磁盘,则不会对其进行额外的标记。 4. **事务回滚**:回滚段中的数据被用来恢复到...
在使用 IDEA 通过 Git 回滚到某个提交节点或某个版本时,有可能出现以下问题: * 如果在回滚操作后,出现提交版本报错,可以尝试重新提交更改。 * 如果在执行强制提交命令时,出现错误信息“remote: GitLab: You ...
当事务中的某一步骤出现问题,可以使用回滚(Rollback)操作撤销所有已完成的步骤,恢复到事务开始前的状态。 在C#中,我们可以利用System.Transactions命名空间提供的TransactionScope类来创建一个事务上下文。...
这里我们将深入探讨事务的提交、回滚以及异常处理。 1. **事务的开启与结束** - 使用`START TRANSACTION`语句开始一个新的事务。 - 提交事务使用`COMMIT`语句,这将永久保存事务中的所有更改。 - 回滚事务使用`...
### Oracle数据库回滚段专题解析 #### 回滚段概述 在Oracle数据库中,回滚段(Rollback Segment)是一种非常重要的数据结构,主要用于存储数据修改前的状态信息,即所谓的“前影像”。这一机制对于确保数据库的...
同时,数据库管理员也可以通过监控回滚段的使用情况,来预防回滚段空间分配问题的发生。 3. 数据库不能正常启动或关闭 数据库管理员可以通过检查回滚段的状态,来确定是否存在故障,并采取相应的解决步骤。 四、...
Grégoire Cachet的优秀要点深入探讨了Django中的事务处理,特别是关于事务的提交和回滚信号。这些信号使得开发者能够更精细地控制数据库操作,并在特定条件下触发事务的提交或回滚,确保数据的正确保存或撤销。 1....
本文主要讨论了嵌套事务的回滚与提交,以及事务保存点的使用。 首先,我们要明白在嵌套事务中,如果内部事务出错,通常会引发外部事务的回滚。这是因为内部事务的失败被视为整个事务链的失败。例如,如果外部事务...