У меня есть простая таблица в моей базе данных SQL Server 2008:
Tasks_Table
-id
-task_complete
-task_active
-column_1
-..
-column_N
В таблице хранятся инструкции для незавершенных задач, которые должны выполняться службой.
Я хочу иметь возможность масштабировать свою систему в будущем. До сих пор только 1 сервис на 1 компьютере читал из таблицы. У меня есть хранимая процедура, которая выбирает все незавершенные и неактивные задачи. Когда служба начинает обрабатывать задачи, она обновляет флаг task_active во всех возвращаемых строках.
Чтобы включить масштабирование системы, я хочу включить развертывание службы на большем количестве машин. Поскольку я хочу предотвратить возвращение задачи более чем одной службе, я должен обновить хранимую процедуру, которая возвращает незавершенные и неактивные задачи.
Я решил, что мне нужно заблокировать таблицу (только 1 читатель за раз - я знаю, что должен использовать соответствующий УРОВЕНЬ ИЗОЛЯЦИИ) и обновлять флаг task_active в каждой строке набора результатов перед возвратом набора результатов.
Итак, мой вопрос, как изменить набор результатов SELECT в хранимой процедуре перед его возвратом?