Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Czy wykonanie procedury składowanej T-SQL jest „atomowe”?

To jest dla SQL Server.

Każda instrukcja jest niepodzielna, ale jeśli chcesz, aby procedura składowana była niepodzielna (lub ogólnie dowolna sekwencja instrukcji), musisz jawnie otoczyć instrukcje znakiem

ROZPOCZNIJ TRANSAKCJĘ
Wyciąg ...
Wyciąg ...
POTWIERDZ TRANSAKCJĘ

(Powszechnie używa się skrótów BEGIN TRAN i END TRAN.)

Oczywiście istnieje wiele sposobów, aby wpaść w kłopoty z blokadą, w zależności od tego, co dzieje się w tym samym czasie, więc możesz potrzebować strategii radzenia sobie z nieudanymi transakcjami. (Pełne omówienie wszystkich okoliczności, które mogą skutkować blokadami, bez względu na to, jak wymyślisz ten konkretny SP, wykracza poza zakres pytania.) Ale nadal będą one możliwe do ponownego złożenia ze względu na atomowość. Z mojego doświadczenia wynika, że ​​prawdopodobnie wszystko będzie dobrze, nie wiedząc o wolumenach transakcji i innych działaniach w bazie danych. Przepraszam, że mówię o rzeczach oczywistych.

W przeciwieństwie do popularnego błędnego przekonania, będzie to działać w Twoim przypadku z domyślnymi ustawieniami poziomu transakcji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Formatowanie danych wyjściowych programu Powershell SQL Server na kolumny i wiersze

  2. SQL:Aktualizuj tabelę, gdzie kolumna =Wiele wartości

  3. SUBSTRING vs LEFT w SQL SERVER

  4. Obsługa Spotlight Cloud dla ogłoszenia o usłudze Azure SQL DB (wersja zapoznawcza)

  5. PIVOT w kw. 2005