私の質問は簡単なものですが、このトランザクションを作成した後、私はまだ疑っています。次のコードを実行すると:
BEGIN TRANSACTION
DROP TABLE Table_Name
削除されたテーブルを回復するROLLBACK TRANSACTIONを実行できますか? 「オブジェクトエクスプローラー」で何が発生するのかわからず、このトピックに関する質問が見つからなかったので、私は質問しています。これは、有用な問題である可能性があると思います。
DROP TABLE
はロールバックでき、自動コミットされません。
これは非常に簡単にテストできます。
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
Oracle 11g、Mysql 5.7、およびMSSQL 2016で試したものを追加したいだけです。これは、MSSQL RDBMSでのみロールバック(動作)しました。スキーマの変更を実行するため、他のほとんどのRDBMSはそれをサポートしないと思います。
Oracle PL/SQL EX:
savepoint mysave;
DROP TABLE test_table;
ROLLBACK TO mysave;
select * from test_table;