Kebanyakan tidak? Gelandangan.
Saya terutama menggunakan SQL Server dan itu. Saya tahu Oracle tidak, tetapi saya pikir Oracle mungkin sebuah penyimpangan.
Dalam SQL Server, saya cukup yakin Anda dapat menjalankan beberapa pernyataan DDL dalam satu transaksi meskipun saya juga berpikir ada beberapa batasan (yang saya semua lupa). Anda dapat membuat atau mengubah atau menjatuhkan sebagian besar hal dan mengembalikannya, jika mau. Red-Gate SQL Compare (alat yang saya suka) mengambil keuntungan dari ini.
Masalah dengan melakukan ini adalah bahwa ruang lingkup transaksi Anda menjadi cukup menarik ... Ketika Anda melibatkan katalog sistem dalam transaksi pembaruan (DDL), Anda berisiko mengambil kunci yang sangat penting dan Anda dapat memblokir akses ke katalog sistem. Pengguna tidak dapat berbuat banyak jika kueri mereka tidak dapat menemukan tabel mereka di katalog!
Namun, pada keseimbangan, berguna untuk dapat memasukkan DDL dalam transaksi multi-pernyataan.
Lebih berguna, perintah SQL Server DDL TRUNCATE
juga bisa menjadi elemen transaksi multi-pernyataan . Anda bisa memotong tabel target (sangat cepat), membangunnya, dan kemudian melakukan komit jika Anda suka hasilnya. Jika ada yang salah, Anda kembalikan dan voila !, sepertinya Anda tidak pernah mengganggu meja. Ruang log juga diminimalkan. Saya sering memanfaatkannya.