Musisz trzymać więcej lub mniej zamków.
Najłatwiejszą odpowiedzią jest wybranie NOLOCK
(najlepsza wydajność) lub TABLOCKX
(konsekwencja bez myślenia).
Jeśli nie możesz użyć with (nolock)
ze względu na wymagania dotyczące spójności możesz dodać with (tablockx)
.To skutecznie oznacza, że tylko jeden wątek może wykonywać podobne instrukcje na raz - nie będzie współbieżności.
Alternatywą jest bardziej szczegółowa analiza wymagań, czego nie można zrobić bez zrozumienia, dlaczego aktualizujesz tabelę, do czego służą dane itp.
Na przykład, czy to oświadczenie naprawdę musi znajdować się w transakcji? Pachnie jak sprzątanie:
DELETE FROM [dbo].[t_Log_2]
WHERE [idtm]<'2011-03-12 08:41:57';
Jeśli usuniesz to z transakcji i umieścisz w osobnej partii, może się okazać, że problemy znikną.