Jest istniejący system informatyczny i są pewne procesy, nazwijmy A i B, gdzie jak się uruchamia te dwie transakcje, to może zdarzyć się deadlock (ale nie musi). Nie chodzi o dyskusję, czym jest deadlock i jak zmodyfikować procesy, żeby do nich nie dochodziło, tylko chodzi o doraźne prowizoryczne usprawnienie.
W takiej sytuacji serwer SQL musi uwalić jeden z tych procesów i do programu wywołujacego transakcję wróci komunkat błędu z systemu MS SQL.
W jaki sposób można wpłynąć na to, który proces zostanie uwalony w razie zakleszczenia? Np. mam procesy A i B, każdy uruchamia transakcję i chciałbym, żeby w każdym przypadku wystąpienia zakleszczenia między tymi procesami serwer uwalał zawsze proces A, a proces B zawsze przetrwał zakleszczenie.
Mam na myśli coś w rodzaju priorytetów czy atrybutów typu, że dany proces jest priorytetowy bądź, że dany proces ma niski priorytet. Doraźna naprawa miałaby polegać na dopisaniu wywołania zapytania SQL w ramach danej transakcji, który sprawi, że ta właśnie transakcja przetrwa zakleszczenie, a serwer uwali pozostałe, które ją blokują (a ona blokuje te pozostałe, bo na tym polega zakleszczenie).