Anda mengatakan:
Anda hanya memerlukan kunci baca bersama selama TXN. Ini berarti tidak ada proses lain yang bisa mendapatkan kunci "tulis", dalam hubungannya dengan TABLOCK. Dan Anda juga tidak perlu COUNT.
...
BEGIN TRANSANCTION
SELECT TOP 1 KeyCol FROM TheTable WITH (TABLOCK, HOLDLOCK)
...
Menurut Anda, mengapa Anda menginginkan KUNCI PEMBARUAN?
Edit, setelah komentar:
- "kunci eksklusif" berarti "hanya satu proses yang menggunakan data".
- "SERIALIZABLE" pada dasarnya berarti menahan kunci (bersama, eksklusif, apa pun) lebih lama.
Anda tidak dapat menentukan "kunci eksklusif" dan memungkinkan proses lain untuk membaca. Konsep-konsepnya saling eksklusif. Anda ingin mencegah penulisan ke seluruh tabel, yang bertahan kunci bersama/baca akan berhasil. Di sinilah SERIALIZABLE masuk.
Dari "Mode Kunci"
Jadi:kunci bersama melarang penulisan dan dapat dibuat bertahan dengan membuatnya SERIALIZABLE