嵌套事务找不到保存点

时间:2019-05-20 19:55:24

标签: sql sql-server

我正在尝试在SQL Server上使用嵌套事务。

这是我的测试表

CREATE TABLE [dbo].[Table2] (
    [Id] INT NOT NULL
);

我的查询

BEGIN TRANSACTION masterTransaction
    BEGIN TRANSACTION test
        GO
            INSERT INTO [dbo].[Table2] VALUES (200)         
            INSERT INTO [dbo].[Table2] VALUES (201)
    COMMIT TRANSACTION test

    BEGIN TRANSACTION test2
        GO
            INSERT INTO [dbo].[Table2] VALUES (202)
            INSERT INTO [dbo].[Table2] VALUES (203)
    COMMIT TRANSACTION test2


    -- Everything before that must be commited
    BEGIN TRANSACTION test3
        GO
            INSERT INTO [dbo].[Table2] VALUES (204)
            INSERT INTO [dbo].[Table2] VALUES (205)
    ROLLBACK TRANSACTION test3

COMMIT TRANSACTION masterTransaction

我的目标是在其中包含主要交易和微交易。如果用户要求中止,我的masterTransaction将回滚其中的所有数据。但是用户可以选择中止并仅丢弃最后一个事务。

我的错误: Test3无法回滚。在该名称下找不到保存或交易点。

我在做什么错了?

0 个答案:

没有答案