SQL Server:事务中的"DROP TABLE"会导致隐式提交吗?

Mau*_*tti 21 sql transactions drop-table

我的问题很简单,但在创建此交易后我仍然怀疑.如果我执行以下代码:

BEGIN TRANSACTION
      DROP TABLE Table_Name
Run Code Online (Sandbox Code Playgroud)

我可以执行恢复丢弃表的ROLLBACK TRANSACTION吗?我问,因为我不知道'对象浏览器'中发生了什么,我没有发现任何关于这个主题的问题,所以我认为这可能是一个有用的问题.

Sea*_*nge 20

这非常容易测试.

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
Run Code Online (Sandbox Code Playgroud)

  • 与Truncate的情况相同,它可以回滚. (2认同)

usr*_*usr 17

DROP TABLE 可以回滚,也不会自动提交.

  • 对于其他阅读的人来说,您不能在所有 RDBM 中使用,但可以在 SQL Server 中使用,这是首选的 OP 数据库。MySQL 例如:https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html (2认同)