Почему не удается откатиться до точки сохранения во второй раз на сервере транзакций SQL? - PullRequest
0 голосов
/ 03 марта 2020

Я создал таблицу с именем «TestTable»

CREATE TABLE TestTable
(
   ID INT NOT NULL,
   Value INT NOT NULL,
   PRIMARY KEY (ID)
)

И затем вставляю в таблицу следующие записи:

BEGIN TRANSACTION
    INSERT INTO TestTable VALUES(1,1)
    SAVE TRANSACTION TS1
    BEGIN TRANSACTION
         INSERT INTO TestTable VALUES(2,2)
         ROLLBACK TRANSACTION TS1
         --roll back to TS1 at the first time

    BEGIN TRANSACTION 
    INSERT INTO TestTable VALUES(4,3)
    ROLLBACK TRANSACTION TS1
    --roll back to TS1 at the second time

Сообщения показываются "Не удается откатить TS1. Не найдено ни одной транзакции или точки сохранения с таким именем. "

Тогда я подумал, возможно ли откат к точке сохранения только один раз?

1 Ответ

0 голосов
/ 04 марта 2020

таким образом

    CREATE TABLE dbo.TranTest
    (
        c1      int
    )
GO

    BEGIN       TRAN    T1

        INSERT INTO [dbo].[TranTest]
                   ([c1])
             VALUES
                   (1)

    SAVE        TRAN    T1

        INSERT INTO [dbo].[TranTest]
                   ([c1])
             VALUES
                   (2)

    ROLLBACK    TRAN    T1
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...