Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Песимистично заключване в T-SQL

Ако чакате друг ресурс, като например краен потребител, приемете съвета на Дейв Маркъл и не го правете.

В противен случай опитайте следния 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 hint учтиво моли SQL Server да задържи заключването, докато не извършите транзакцията. ROWLOCK hint учтиво моли SQL Server да заключи само този ред, вместо да издаде заключване на страница или таблица.

Имайте предвид, че ако са засегнати много редове, или SQL Server ще поеме инициативата и ще ескалира до заключвания на страници, или ще имате цяла армия от заключвания на редове, които запълват паметта на вашия сървър и затрудняват обработката.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи sp_describe_first_result_set в SQL Server

  2. SQL заявка като GROUP BY с условие OR

  3. Как ISNUMERIC() работи в SQL Server

  4. 7 начина за намиране на дублиращи се редове в SQL Server, като игнорирате първичен ключ

  5. Как да извлека данни от база данни на SQL Server в C#?