Без кластеризованного индекса для AccountId и некластеризованного индекса в этом столбце, SQL Сервер должен заблокировать ключ индекса и затем строку.
Таким образом, 1-е обновление будет успешным, и после обновления у вас будет только один строка заблокирована в таблице.
2-е обновление попытается заблокировать эти строки и будет ожидать снятия блокировки с 1-го обновления. Он сможет получить блокировку ключа для индекса.
3-е обновление попытается заблокировать ключ индекса и будет ожидать снятия блокировки со 2-го обновления. Deadlock.
Мне удалось воспроизвести его, используя следующую таблицу:
create table test5 (x int,y int)
insert into test5 values (10,15)
GO
insert into test5 values (11,15)
GO 10000
create index ix on test5(x)
select * from test5
begin transaction
update test5
set y = 5
where x = 10
-- wait here
update test5
set y = 5
where x = 10
rollback