いいえ、そうではありません。
標準的な方法は 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 ... } }プレ>[注:簡潔にするために break ステートメントは追加されていません
注意 、多くのロックの問題は、適切なカバー インデックスを提供することで排除できます。