Ne le faites pas. N'y pense même pas. Vous tuerez toutes les performances et la simultanéité dont vous disposez.
Vous devez savoir pourquoi vous avez des valeurs PK en double. Si vous laissez cela à la base de données elle-même, en utilisant une colonne INT IDENTITY par exemple, vous n'avez vraiment à vous soucier de rien. SQL Server se chargera de s'assurer que ces valeurs sont en effet toujours garanties d'être uniques.
Donc, vraiment, la recommandation est la suivante :réorganisez votre solution et laissez la base de données gérer l'unicité des identifiants - vous n'aurez alors plus du tout besoin d'un verrouillage ou de quoi que ce soit.