2010-09-22 10 views
0

Avec SQL Server 2008, comment puis-je détecter si un enregistrement est verrouillé?Comment détecter un enregistrement est verrouillé?

EDIT:

Je dois savoir, afin que je puisse en informer l'utilisateur que le dossier n'est pas accessible parce que le dossier est bloqué.

+0

Pourriez-vous expliquer davantage ce que vous demandez? Comme dans, pourquoi avez-vous besoin de savoir si un enregistrement est verrouillé? –

+0

Voir ma modification dans le postpost – Martijn

+1

Je pense que vous pourriez aborder ce problème dans le mauvais sens: éliminer le verrouillage plutôt que de se concentrer sur le signaler aux utilisateurs –

Répondre

3

Dans la plupart des cas avec SQL 2008, vous pouvez faire quelque chose comme:

if exists(select 0 from table with (nolock) where id = @id) 
    and not exists(select 0 from table with(readpast) where id = @id) 
begin 
    -- Record is locked! Do something. 

end 

Si cela ne suffit pas (qui est, vous devez ignorer les verrous de niveau de table ainsi), utilisez la touche NOWAIT qui jette une erreur s'il y a un verrou.

+0

Merci beaucoup. Ce dont j'avais besoin, c'était l'indice NOWAIT! – Martijn