sql >> Database teknologi >  >> RDS >> Sqlserver

Pessimistisk lås i T-SQL

Hvis du venter på en anden ressource såsom en slutbruger, så tag Dave Markles råd og lad være med at gøre det.

Ellers kan du prøve følgende T-SQL-kode:

BEGIN TRAN

SELECT *
FROM   authors AU
WITH   (HOLDLOCK, ROWLOCK)
WHERE  AU.au_id = '274-80-9391'

/* Do all your stuff here while the row is locked */

COMMIT TRAN

HOLDLOCK hint beder høfligt SQL Server om at holde låsen, indtil du begår transaktionen. ROWLOCK hint beder høfligt SQL Server om kun at låse denne række i stedet for at udstede en side- eller tabellås.

Vær opmærksom på, at hvis mange rækker er berørt, vil SQL Server enten tage initiativet og eskalere til sidelåse, eller også vil du have en hel hær af rækkelåse, der fylder din servers hukommelse og spolerer behandlingen.



  1. Oracle SQL INNER Join baseret på ikke-matchende værdier

  2. Sletning af duplikerede rækker i en MySQL-database

  3. Den angivne adgangskode til brugerkontoen 'root' er ikke gyldig eller kunne ikke oprette forbindelse til databaseserveren

  4. Opret en Excel-fil (.xlsx) ved hjælp af PL/SQL