नहीं, वास्तव में नहीं।
try/catch
. का उपयोग करने का मानक तरीका है और संभाल लें SqlException
नंबर 1205
(गतिरोध पीड़ित), और अपनी क्वेरी का पुनः प्रयास करें:
try
{
// do stuff...
}
catch (SqlException sqlEx)
{
switch (sqlEx.Number)
{
case -2: // Client Timeout
case 701: // Out of Memory
case 1204: // Lock Issue
case 1205: // >>> Deadlock Victim
// handle deadlock
break;
case 1222: // Lock Request Timeout
case 2627: // Primary Key Violation
case 8645: // Timeout waiting for memory resource
case 8651: // Low memory condition
...
}
}
[नोट:संक्षिप्तता के लिए ब्रेक स्टेटमेंट नहीं जोड़े गए हैं
यह भी नोट करें , उचित कवरिंग इंडेक्स प्रदान करके कई लॉकिंग मुद्दों को समाप्त किया जा सकता है।