Nedělá to nic. Všechny jednotlivé příkazy SQL (se vzácnými výjimkami, jako jsou hromadné vkládání bez protokolu nebo zkrácená tabulka) jsou automaticky „v transakci“, ať už to výslovně řeknete nebo ne. (i když vloží, aktualizují nebo odstraní miliony řádků) .
EDIT:na základě komentáře @Phillip níže... V aktuálních verzích SQL Serveru Even Bulk Inserts a Truncate Table zapisují některé data do transakčního protokolu, i když ne v takovém množství jako jiné operace. Z transakčního hlediska je zásadní rozdíl v tom, že v těchto jiných typech operací nejsou data ve vašich databázových tabulkách upravovaná v protokolu ve stavu, který umožňuje jejich vrácení zpět.
To vše znamená, že změny provedené příkazem v datech v databázi jsou zaznamenány do protokolu transakcí, takže je lze vrátit zpět, pokud operace selže.
Jedinou funkcí, kterou poskytují příkazy "Zahájit transakci", "Potvrdit transakci" a "Odvolat transakci", je umožnit vložit dva nebo více jednotlivých příkazů SQL do stejné transakce.
EDIT:(pro posílení komentáře ke známkám...) ANO, mohlo by to být přičítáno „pověrčivému“ programování, nebo by to mohlo být známkou zásadního nepochopení podstaty databázových transakcí. Dobročinnější výklad je, že je to prostě výsledek nadměrného uplatňování konzistence, což je nevhodné, a další příklad Emersonova eufemismu, který:
Pošetilá důslednost je skřet malých myslí,
zbožňovaný malými státníky, filozofy a bohy