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

Какво прави SQL Server с изтекла заявка за изчакване?

Времето за изчакване се налага от ADO.NET. SQL Server не познава такова нещо като таймаут на команда. .NET клиентът ще изпрати TDS команда "внимание". Можете да наблюдавате това поведение с SQL Profiler, защото има събитие "внимание".

Когато SQL Server получи анулирането, той ще отмени текущо изпълняваната заявка (точно както прави SSMS, когато натиснете бутона за спиране). Той ще прекрати партидата (точно както в SSMS). Това означава, че не може да се изпълнява код за улавяне. Връзката ще остане жива.

Според моя опит транзакцията ще бъде отменена незабавно. Не мисля обаче, че това е гарантирано.

TL; DR:Изчакване в ADO.NET се държи по същия начин, както ако сте натиснали стоп в SSMS (или сте извикали SqlCommand.Cancel ).

Ето справка за това:https://techcommunity.microsoft.com/t5/sql-server-support/how-it-works-attention-attention-or-should-i-say -cancel-the/ba-p/315511



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо рекурсивният CTE в Transact-SQL изисква UNION ALL, а не UNION?

  2. Entity Framework - Получаване на дължината на данните в текстова колона

  3. Преобразуване на дата в друга часова зона в SQL Server

  4. Мога ли да се свържа към SQL Server, който е външен за моята мрежа?

  5. Има ли разлика между IS NULL и =NULL