Jika Anda menanyakan semua catatan dalam satu kueri, dan menariknya kembali sekaligus, tidak perlu. Semuanya terbungkus dalam transaksi implisit. Artinya, bahkan jika Anda mendapatkan kembali satu juta catatan, dan bahkan jika proses lain mengubah catatan, Anda akan melihat seperti apa semua satu juta catatan itu pada titik waktu yang sama.
Satu-satunya saat Anda benar-benar membutuhkan transaksi (dan, sering kali, petunjuk penguncian tertentu) dalam proses hanya baca adalah:
- Anda membaca catatan "sepotong-sepotong" dan tidak memerlukan apa pun untuk mengubah nilai saat Anda ulangi sekalipun. [Seperti recordset yang terhubung di ADO yang kemudian Anda lewati dengan kursor.]
- Anda membaca beberapa data, melakukan beberapa perhitungan, kemudian membaca beberapa data terkait, tetapi dengan asumsi tidak ada yang berubah dalam waktu yang berarti.
Singkatnya, Anda memerlukan transaksi saat Anda ingin proses lain dihentikan agar tidak mengganggu data Anda di antara pernyataan SQL.