Anda juga perlu menahan lebih banyak kunci atau lebih sedikit.
Jawaban termudah adalah menggunakan NOLOCK
(kinerja terbaik) atau TABLOCKX
(konsistensi tanpa harus berpikir).
Jika Anda tidak dapat menggunakan with (nolock)
karena persyaratan konsistensi, Anda dapat menambahkan with (tablockx)
.Ini secara efektif berarti bahwa hanya satu utas yang dapat mengeksekusi pernyataan serupa pada satu waktu - tidak akan ada konkurensi.
Alternatifnya adalah menganalisis kebutuhan Anda secara lebih rinci, yang tidak dapat dilakukan tanpa memahami mengapa Anda memperbarui tabel, untuk apa data tersebut, dll.
Misalnya, apakah pernyataan ini benar-benar perlu ada dalam transaksi? Baunya seperti rumah tangga:
DELETE FROM [dbo].[t_Log_2]
WHERE [idtm]<'2011-03-12 08:41:57';
Jika Anda mengeluarkannya dari transaksi, dan memasukkannya ke dalam kelompok yang terpisah, Anda mungkin menemukan bahwa masalahnya akan hilang.