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

SQL Server - låser [SELECT] [OPDATERING]?

Ja - til en vis grad.

Hvor længe en SELECT holder på en delt lås afhænger af transaktionens isolationsniveau:

  • READ UNCOMMITTED - ingen delt lås er erhvervet overhovedet - UPDATE er ikke blokeret
  • READ COMMITTED - delt lås erhverves kun for varigheden af ​​læsning af data - UPDATE kan være blokeret i en meget kort periode
  • REPEATABLE READ og SERIALIZABLE - delt lås erhverves og holdes på indtil slutningen af ​​transaktionen - UPDATE er blokeret indtil SELECT transaktionen slutter

Teknisk set er UPDATE sætningen får først en UPDATE lås - som er kompatibel med en delt lås (som brugt af SELECT ) - så længe den læser de aktuelle værdier for de rækker, der skal opdateres.

Når det er gjort, vises Update låsen eskaleres til en eksklusiv lås, så de nye data kan skrives til tabellen.



  1. Fremmednøgle til ikke-primær nøgle

  2. Hvordan installerer jeg MySQL og Python MySQL-pakken på OS X Leopard? Eller hvordan lærer jeg om at være webudvikler ved hjælp af OS X?

  3. Jboss AS7 forbindelsespulje vil ikke oprette forbindelse igen

  4. SQL-forespørgsel dynamisk tabelnavn i FOR