Z aplikacji .NET 3.5/C# chciałbym złapać SqlException
, ale tylko wtedy, gdy jest spowodowane przez zakleszczenia na wystąpienie programu SQL Server 2008.Jak złapać wyjątek SqlException spowodowany impasem?
Typowy komunikat o błędzie jest Transaction (Process ID 58) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Jednak nie wydaje się być udokumentowane error code dla tego wyjątku.
Wyjątek filtrowania przed wystąpieniem impasu w ich komunikacie wydaje się bardzo brzydkim sposobem na osiągnięcie tego zachowania. Czy ktoś wie, jak to zrobić?
I (w końcu) znalazłem dokumentację kodu błędu: http://msdn.microsoft.com/en-us/library/aa337376.aspx. Możesz to również znaleźć w samym Serwerze SQL: 'select * from master.dbo.sysmessages gdzie error = 1205' –