Вся документация по SQL-тупикам рассказывает о сценарии, в котором операция 1 блокирует ресурс A, затем пытается получить доступ к ресурсу B, а операция 2 блокирует ресурс B и пытается получить доступ к ресурсу A.
Однако я часто вижу взаимоблокировки между выбором и обновлением или даже между несколькими выборами в некоторых наших загруженных приложениях. Я нахожу, что некоторые из более тонких точек выхода в тупик довольно непроницаемы, но я просто хотел бы понять, что может вызвать тупик между двумя отдельными операциями. Конечно, если в элементе есть блокировка чтения, обновление должно просто ждать до получения эксклюзивной блокировки и наоборот?
Это происходит на SQL Server 2005, но я не думаю, что это имеет значение.