Имеется хранимая процедура (SR_ER_BEFOR), вызывающая другую хранимую процедуру (SR_ER), состоящую из Insert-ов и Update-ов и обрабатывающую одну запись, параметром является id записи. В результате ее (SR_ER) выполнения возможен откат транзакции ввиду неправильности данных, получаемых от пользователей. После обработки меняется значение поля ProcessMode из 10 в другое значение.
Если запускать хранимую (SR_ER_BEFOR) из Query Analizer, то она берет все необработанные данные и обрабатывает все записи. То есть всё хорошо.
Если хранимая (SR_ER_BEFOR) выполняется из Job-а, то обрабатываются несколько записей (например, 2, 3, 4 из имеющихся 12), и следовательно, Job должен выполниться несколько раз, чтобы обработать все записи. Время работы Job-а 1 секунда. Запускается Job один раз в 2 минуты.
Текст хранимой процедуры:
CREATE PROCEDURE dbo.SR_ER_BEFOR
AS
begin
declare @id_x25 bigint
WHILE 0=0
begin
set @id_x25=(SELECT TOP 1 ID_X25
FROM X25_Start
WHERE (ProcessMode = 10)
ORDER BY ID_X25 )
if @id_x25 is NULL break
EXEC DBO.SR_ER @id_x25
end
end
GO
Помогите, пожалуйста, исправить процедуру (SR_ER_BEFOR), чтобы при запуске из Job-а она выполнялась до тех пор, пора имеются необработанные записи (ProcessMode = 10).