SQL Server 2008: У меня есть ситуация, когда я хочу читать из таблицы и записывать строку при определенных условиях.Проблема в том, что я не хочу, чтобы другой запрос приходил в одно и то же время и делал то же самое.Я попытаюсь объяснить здесь:
Имя таблицы: RequestQueue
Columns:
RequestID, StartDate, EndDate, RequestResult
Sample Data
1, 12/4/10 1:00pm, 12/4/10 1:02pm, Success
2, 12/4/10 1:04pm, 12/4/10 1:05pm, Success
3, 12/4/10 1:00pm, NULL, NULL
Когда страница загружается в мое приложение, я хочу, чтобы она посмотрела на эту таблицу иесли есть запрос, ожидающий ответа (ID # 3), он ничего не сделает.В противном случае, если нет ожидающих запросов, он создает новую строку с заполненными идентификатором и начальной датой.
Проблема заключается в том, что мы можем попасть в ситуацию, когда страница загружается дважды почти в одно и то же время.,Если они оба прочитают из таблицы перед созданием новой строки, то я мог бы получить две новые строки там.Я хочу иметь какой-то запрос, который читает из таблицы, и если нет ожидающих запросов, вставляет новую строку с заполненной StartDate. Я хочу, чтобы этот запрос выполнялся полностью, прежде чем другая страница сможет даже прочитать из этой таблицы, такЯ не получаю эффекта «двойной строки».
Мне может понадобиться «блокировка» или что-то в этом роде, я погуглил, но не нашел что-то для моей конкретной ситуации.Я уверен, что это может быть простая хранимая процедура, мне просто нужно нажать в правильном направлении.
Спасибо,
Роберт