В MS SQL сервере введено понятие "ресурса", который можно заблокировать
sp_getapplock (Transact-SQL)
Физически, "ресурс" - это просто символьная строка. Соответственно, через команды прямого обращения к SQL (Connection+Statement) можно создать и заблокировать "ресурс" и при попытке другого пользователя создать тот же самый ресурс он получит ошибку
Применительно к данной задаче в качестве "ресурса" можно использовать имя обрабатываемого файла
Достоинства этого метода в том, что в случае разрыва соединения блокировка ресурса снимается автоматически. Именно по этой причине лучше использовать именно Connection
PS: вопрос только в том, какая версия MS SQL используется. Не помню, с какой версии эти функции были введены
PPS: в dax2012 есть готовый класс по работе с ресурсами MS SQL. Называется ReqReaderWriterLock. Но был ли он в dax2009 - не в курсе