У нас есть два простых запроса (внутри хранимой процедуры, используемых веб-сайтом):
if @a = 1
begin
select a.col1, a.col2 , b.col1 from table1 a join table2 b
on a.id = b.id
where a.col1 = 'yyyy'
end
else
begin
select a.col1, a.col2 , b.col1 from table1 a join table2 b
on a.id = b.id
where a.col1 = 'zzzz'
end
С первым запросом проблем не возникает (@a = 1).Второй должен вернуть 48 строк (таблицы пишутся не часто).Один или два раза в день (из сотен обращений) второй запрос возвращает 10 или 30 строк (для отладки я вставил @@ rowcount в другую таблицу).Таким образом, чтобы заставить его вернуть мне 48 строк, я попробовал что-то вроде этого:
else
again:
begin
select a.col1, a.col2 , b.col1 from table1 a join table2 b
on a.id = b.id
where a.col1 = 'zzzz'
if @@rowcount <> 48 goto again
end
, он продолжает цикл в течение нескольких минут (никогда не возвращает 48 строк), пока я не убью спид.
Любая идеяпомог бы.Спасибо