首页 > 解决方案 > 保存点上同名交易的问题

问题描述

我正在尝试学习 SQL Server 中的事务。

我从删除 Customer 表中的数据开始:

Delete from Customer

然后我创建了以下事务并具有相同名称的保存点:

BEGIN TRANSACTION 

 SAVE TRANSACTION SavePoint1
  INSERT INTO Customer VALUES (1, 'Code_1', 'Ramesh')
     INSERT INTO Customer VALUES (2, 'Code_2', 'Suresh')

 SAVE TRANSACTION SavePoint1
  INSERT INTO Customer VALUES (3, 'Code_3', 'Priyanka')
     INSERT INTO Customer VALUES (4, 'Code_4', 'Preety')

 SAVE TRANSACTION SavePoint3
  INSERT INTO Customer VALUES (5, 'Code_5', 'John')
     INSERT INTO Customer VALUES (6, 'Code_6', 'David')

     ROLLBACK TRANSACTION SavePoint1

COMMIT TRANSACTION 

现在我想,如果我有同名的保存点,并且我回滚到那个保存点,在本例中为 SavePoint1,它将回滚到最后一个具有该名称的事务。在我的例子中,它应该插入客户 Priyanka 和 Preety,它们在最后一笔交易中名为 SavePoint1。

但是,当我选择在我的 Customer 表中的事务之后运行所有记录时,它会显示第一批 SavePoint1 事务中的客户 Ramesh 和 Suresh。

我在这里错过了什么吗?

标签: sql-servertransactions

解决方案


推荐阅读