Pokud se dotazujete na všechny záznamy v jediném dotazu a stahujete je zpět najednou, není potřeba. Vše je zabaleno do implicitní transakce. To znamená, že i když se vám vrátí milion záznamů a i když jiné procesy záznamy změní, uvidíte, jak všech milion záznamů vypadal ve stejný okamžik.
Jediné případy, kdy byste skutečně potřebovali transakci (a často i konkrétní nápovědu k uzamčení) v procesu pouze pro čtení, jsou:
- Čtete záznamy „kus-moučka“ a nepotřebujete nic dalšího ke změně hodnot, zatímco přesto opakovat. [Například připojená sada záznamů v ADO, přes kterou poté kurzorem procházíte.]
- Přečtete nějaká data, provedete nějaké výpočty a pak přečtete některá související data, ale za předpokladu, že se mezitím nic nezměnilo.
Stručně řečeno, transakce potřebujete, když chcete, aby jiné procesy přestaly zasahovat do vašich dat mezi příkazy SQL.