sql >> Database >  >> RDS >> Sqlserver

SQL Server ROWLOCK over een SELECT indien niet bestaat INSERT transactie

Een uitleg...

  • ROWLOCK/PAGELOCK is granulariteit
  • XLOCK is modus

Granulariteit en isolatieniveau en modus zijn orthogonaal.

  • Granulariteit =wat is vergrendeld =rij, pagina, tabel (PAGLOCK, ROWLOCK, TABLOCK )

  • Isolatieniveau =vergrendelingsduur, gelijktijdigheid (HOLDLOCK, READCOMMITTED, REPEATABLEREAD, SERIALIZABLE )

  • Mode =delen/exclusiviteit (UPDLOCK, XLOCK )

  • "gecombineerd", bijv. NOLOCK, TABLOCKX

XLOCK zou de rij exclusief hebben vergrendeld zoals u wilt. ROWLOCK/PAGELOCK niet.




  1. Een logging-handler maken om verbinding te maken met Oracle?

  2. Symfony:Basistabel of weergave bestaat al:1050 Tabel 'migration_versions' bestaat al

  3. Verandert de parameter `serverTimezone` @@session.time_zone in MySQL?

  4. Hoe een MySQL-fout op te lossen U kunt doeltabel X niet specificeren voor update in de FROM-clausule?