Подтвердить что ты не робот

SQL Server: внутри транзакции "DROP TABLE" вызывает неявное коммитирование?

Мой вопрос прост, но я все еще сомневаюсь, когда создал эту транзакцию. Если я выполнил следующий код:

BEGIN TRANSACTION
      DROP TABLE Table_Name

Могу ли я выполнить ROLLBACK TRANSACTION, который восстанавливает упакованную таблицу? Я спрашиваю, потому что я не знаю, что происходит в "Обозревателе объектов", и я не нашел никакого вопроса по этой теме, поэтому я думаю, что это может быть полезной проблемой.

4b9b3361

Ответ 1

DROP TABLE может быть откат и не автокопирование.

Ответ 2

Это невероятно легко проверить.

create table TransactionTest
(
    ID int identity primary key clustered,
    SomeValue varchar(20)
)

insert TransactionTest
select 'Here is a row'

begin transaction
    drop table TransactionTest
rollback transaction

select * from TransactionTest

Ответ 3

Я просто хочу добавить, что я пытался использовать Oracle 11g, Mysql 5.7 и MSSQL 2016. Он только откатывался (работал) с MSSQL RDBMS. Я бы ожидал, что большинство других СУБД не будут поддерживать его, поскольку он выполняет изменения схемы.

ORACLE PL/SQL EX:

savepoint mysave;
DROP TABLE test_table;
ROLLBACK TO mysave;
select * from test_table;