sql >> Databasteknik >  >> RDS >> Sqlserver

Vad gör SQL Server med en timeout-förfrågan?

Timeout upprätthålls av ADO.NET. SQL Server känner inte till något sådant som en kommando timeout. .NET-klienten skickar ett "attention" TDS-kommando. Du kan observera detta beteende med SQL Profiler eftersom det har en "attention"-händelse.

När SQL Server tar emot avbokningen kommer den att avbryta den aktuella frågan (precis som SSMS gör när du trycker på stoppknappen). Det kommer att avbryta batchen (precis som i SSMS). Det betyder att ingen fångstkod kan köras. Anslutningen förblir vid liv.

Enligt min erfarenhet kommer transaktionen att återställas omedelbart. Jag tror dock inte att detta är garanterat.

TL;DR:En timeout i ADO.NET fungerar på samma sätt som om du hade tryckt på stopp i SSMS (eller kallat SqlCommand.Cancel ).

Här är referens för detta:https://techcommunity.microsoft.com/t5/sql-server-support/how-it-works-attention-attention-or-should-i-say -cancel-the/ba-p/315511



  1. 2 sätt att konvertera till versaler i Oracle

  2. Vilken tidszonsinformation lagrar PostgreSQL?

  3. Itererar genom PostgreSQL-poster. Hur refererar man till data från nästa rad?

  4. oracle varchar till nummer