BEGIN TRAN
SELECT 1
FROM Table
WITH (XLOCK, ROWLOCK)
COMMIT TRAN
Questo farà il trucco.
MODIFICA
Come notato da altri, non puoi bloccare una riga per non essere letta . L'unico modo che conosco per farlo è il seguente:
WITH (UPDLOCK, TABLOCK)
E questo presuppone che un WITH (NOLOCK) non venga mai utilizzato in un'istruzione SELECT (che dovrebbe comunque essere evitata).
L'ho testato e funzionerà, anche se TABLOCK dovrebbe essere utilizzato solo in casi estremi. Certamente se è richiesta la concorrenza, è una cattiva soluzione e sarebbe necessaria qualche altra forma di blocco. Un modo è aggiornare una colonna di bit "Disponibile Vero/Falso" e leggere solo le righe in cui Disponibile =Vero. Come suggerito da @gbn, READPAST potrebbe essere usato con questo.