Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa yang dilakukan transaksi di sekitar satu pernyataan?

Itu tidak melakukan apa-apa. Semua Pernyataan SQL individual, (dengan pengecualian langka seperti Sisipan Massal tanpa Log, atau Tabel Terpotong) secara otomatis "Dalam Transaksi" apakah Anda secara eksplisit mengatakannya atau tidak.. (bahkan jika mereka menyisipkan, memperbarui, atau menghapus jutaan baris) .

EDIT:berdasarkan komentar @ Philip di bawah... Dalam versi SQL Server saat ini, Bahkan Sisipan Massal dan Tabel Pemotongan menulis beberapa data ke log transaksi, meskipun tidak sebanyak operasi lain. Perbedaan penting dari perspektif transaksional, adalah bahwa dalam jenis operasi lain ini, data dalam tabel database Anda yang dimodifikasi tidak berada dalam status log yang memungkinkannya untuk dibatalkan.

Semua ini berarti bahwa perubahan yang dibuat pernyataan terhadap data dalam database dicatat ke log transaksi sehingga dapat dibatalkan jika operasi gagal.

Satu-satunya fungsi yang disediakan oleh perintah "Mulai Transaksi", "Melakukan Transaksi" dan "Transaksi Kembalikan" adalah untuk memungkinkan Anda memasukkan dua atau lebih pernyataan SQL individual ke dalam transaksi yang sama.

EDIT:(untuk memperkuat komentar tanda ...) YA, ini dapat dikaitkan dengan pemrograman "takhayul", atau itu bisa menjadi indikasi kesalahpahaman mendasar tentang sifat transaksi basis data. Interpretasi yang lebih dermawan adalah bahwa itu hanyalah hasil dari penerapan konsistensi yang berlebihan yang tidak tepat dan contoh lain dari eufemisme Emerson yang:

Konsistensi bodoh adalah hobgoblin dari pikiran kecil,
dipuja oleh negarawan kecil dan filsuf dan dewa



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Internal:Rencana Caching Pt. I – Menggunakan Kembali Paket

  2. SQL Server:SUM() dari beberapa baris termasuk klausa where

  3. Cara Menginstal SQL Server Manager Studio (SSMS) - Tutorial SQL Server / TSQL Bagian 1

  4. Mengapa server sql menyimpan karakter tanda tanya alih-alih karakter Jepang di bidang NVarchar?

  5. String_agg untuk SQL Server sebelum 2017