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

Apakah Eksekusi Prosedur Tersimpan T-SQL 'atomik'?

Ini untuk SQL Server.

Setiap pernyataan bersifat atomik, tetapi jika Anda ingin prosedur tersimpan menjadi atomik (atau urutan pernyataan apa pun secara umum), Anda perlu secara eksplisit mengapit pernyataan dengan

MULAI TRANSAKSI
Pernyataan ...
Pernyataan ...
KOMITKAN TRANSAKSI

(Umumnya menggunakan BEGIN TRAN dan END TRAN.)

Tentu saja ada banyak cara untuk mendapatkan masalah kunci tergantung apa lagi yang terjadi pada saat yang sama, jadi Anda mungkin memerlukan strategi untuk menangani transaksi yang gagal. (Diskusi lengkap tentang semua keadaan yang mungkin mengakibatkan kunci, tidak peduli bagaimana Anda merancang SP khusus ini, berada di luar cakupan pertanyaan.) Tetapi mereka masih dapat dikirim ulang karena atomnya. Dan menurut pengalaman saya, Anda mungkin akan baik-baik saja, tanpa mengetahui tentang volume transaksi Anda dan aktivitas lain di database. Maaf untuk menyatakan yang sudah jelas.

Berlawanan dengan kesalahpahaman populer, ini akan bekerja dalam kasus Anda dengan pengaturan tingkat transaksi default.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. String Format Numerik Kustom Didukung oleh FORMAT() di SQL Server

  2. Bagaimana cara menyiram buffer PRINT di TSQL?

  3. java.sql.SQLException:Tidak ditemukan driver yang cocok untuk jdbc:microsoft:sqlserver

  4. Perubahan Lisensi Common Sense untuk SQL Server 2014 Standard Edition

  5. Hubungkan PHP ke MSSQL melalui PDO ODBC