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

Czy podczas odczytu rekordów powinienem używać transakcji SQL?

Jeśli wysyłasz zapytania do wszystkich rekordów w jednym zapytaniu i ściągasz je z powrotem za jednym razem, nie ma takiej potrzeby. Wszystko jest uwikłane w niejawną transakcję. Oznacza to, że nawet jeśli odzyskasz milion rekordów i nawet jeśli inne procesy zmieniają rekordy, zobaczysz, jak w tym samym momencie wyglądał cały milion rekordów.

Jedyne sytuacje, w których naprawdę potrzebujesz transakcji (i często konkretnej wskazówki dotyczącej blokowania) w procesie tylko do odczytu, to:
– Czytasz rekordy „kawałkami” i nie potrzebujesz niczego więcej, aby zmienić wartości podczas jednak powtarzać. [Na przykład połączony zestaw rekordów w ADO, przez który przechodzisz.]
- Czytasz pewne dane, wykonujesz obliczenia, a następnie czytasz powiązane dane, ale zakładając, że w międzyczasie nic się nie zmieniło.


Krótko mówiąc, potrzebujesz transakcji, gdy chcesz, aby inne procesy nie zakłócały danych między instrukcjami SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Różnica między sys.parameters, sys.system_parameters i sys.all_parameters w programie SQL Server

  2. Aktualizowanie kolumny bitów SQL z Entity Framework

  3. Korzystanie z TransactionScope z niezatwierdzonym odczytem - czy z (nolock) w SQL jest konieczne?

  4. Jak usunąć wiodące białe znaki w SQL Server — LTRIM()

  5. Korzystanie z klauzuli With SQL Server 2008