Существуют ли операторы SQL на SQL Server 2016, которые не будут откатываться? - PullRequest
0 голосов
/ 02 июня 2019

Я готовлюсь к своему сертификационному экзамену 70-761.

Проведение практического теста, на который я наткнулся, спросил: «Какие утверждения не будут откатываться в транзакции?»

Когда я проверял свои ответы впоследствии, я был удивлен, увидев «ALTER» и «ОБНОВЛЕНИЕ», где правильные ответы.

Однако, проверяя эту теорию, у меня не было никаких утверждений НЕ откат, когда ошибка былапредставленный.

Если это что-то меняет, я использую SQL Server Express на основе SQL Server 2016 (v13).

Это ошибка в ключе практического вопроса?

Вот копия транзакции.

    begin
        begin try
            begin tran

                update t4 
                set name = 'mikeyshit' 
                where name = 'Jim';

                drop table t4;
                drop table t5;

                create table t4
                (
                    id uniqueidentifier primary key default NEWSEQUENTIALID(),
                    name nvarchar(50)
                );

                insert into t4 (name) 
                values ('Jim'), ('Keith'), ('Paula'), ('Rose');

                create table t5
                (
                    id uniqueidentifier primary key default NEWSEQUENTIALID(),
                    name nvarchar(50)
                );

                insert into t5 (name) 
                values ('Jimmy'), ('Will'), ('Willow'), ('Lydia'), ('Bob');

                -- test of rollback violates PK
                insert into t1 (col1, col2) values (21, 'Chill');

            commit tran
        END TRY
        BEGIN CATCH
            Rollback Tran
            select
                ERROR_NUMBER(),
                ERROR_MESSAGE(),
                ERROR_PROCEDURE(),
                ERROR_STATE(),
                ERROR_SEVERITY(),
                ERROR_LINE()
        END CATCH
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...