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

Pesymistyczny zamek w T-SQL

Jeśli czekasz na inny zasób, taki jak użytkownik końcowy, skorzystaj z porady Dave'a Markle i nie rób tego.

W przeciwnym razie wypróbuj następujący kod T-SQL:

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 wskazówka uprzejmie prosi SQL Server o wstrzymanie blokady do czasu zatwierdzenia transakcji. ROWLOCK wskazówka uprzejmie prosi SQL Server o zablokowanie tylko tego wiersza zamiast blokowania strony lub tabeli.

Należy pamiętać, że jeśli wpłynie to na wiele wierszy, albo SQL Server przejmie inicjatywę i eskaluje do blokad stron, albo cała armia blokad wierszy wypełni pamięć serwera i ugrzęźnie w przetwarzaniu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co oznacza FixedLenNullInSource w sp_help?

  2. Jak skopiować dane tabeli ze zdalnego serwera na lokalny serwer w SQL Server 2008

  3. wyzwalacz aktualizacji do aktualizacji rekordów w innej tabeli

  4. Nie mogę dodać Microsoft.SqlServer.Management.Common do mojej aplikacji ASP.NET MVC

  5. MVC4:UserIsInRole — nie można połączyć się z bazą danych SQL Server