我正在尝试在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无法回滚。在该名称下找不到保存或交易点。
我在做什么错了?