sql >> Database >  >> RDS >> Sqlserver

Is T-SQL Stored Procedure Execution 'atomair'?

Dit is voor SQL Server.

Elke instructie is atomair, maar als u wilt dat de opgeslagen procedure atomair is (of een reeks instructies in het algemeen), moet u de instructies expliciet omringen met

TRANSACTIE BEGINNEN
Verklaring ...
Verklaring ...
TRANSACTIE BEGINNEN

(Het is gebruikelijk om BEGIN TRAN en END TRAN in het kort te gebruiken.)

Natuurlijk zijn er veel manieren om problemen met het slot te krijgen, afhankelijk van wat er nog meer op hetzelfde moment aan de hand is, dus je hebt misschien een strategie nodig om met mislukte transacties om te gaan. (Een volledige bespreking van alle omstandigheden die kunnen leiden tot sluizen, hoe je deze specifieke SP ook bedenkt, valt buiten het bestek van de vraag.) Maar ze zullen nog steeds opnieuw worden ingediend vanwege de atomiciteit. En in mijn ervaring komt het waarschijnlijk goed, zonder te weten wat je transactievolumes en de andere activiteiten in de database zijn. Sorry dat ik het voor de hand liggende zeg.

In tegenstelling tot een populaire misvatting, zal dit in jouw geval werken met standaard transactieniveau-instellingen.



  1. MySQL-stuurprogramma voor Rails in Windows 7 x64

  2. Vergrendel variabelen in Scripttaak met C#

  3. Scrabble-woordzoeker met jokertekens

  4. Hoe selecteert u een SQL over meerdere partities?