Тема: Допоможіть з курсорами, будь-ласочка^^
Здорів. Завдання взагалі от таке.
А от мій недокід
BEGIN
declare @min numeric(18,0);
declare @max numeric(18,0);
declare @avg numeric(18,0);
declare @tmp numeric(18,0);
set @min=10000;
set @max=-10000;
set @avg=0;
declare my_cursor cursor
for select price from Books;
OPEN my_cursor
fetch next from my_cursor into @tmp;
while @@fetch_status=0
BEGIN
if @tmp>@max
begin
set @max=@tmp;
end
select @max;
end
close my_cursor;
deallocate my_cursor;
select @max;
END
Проблема виникла з зупинкою цикла, я не знаю, як перевірити наявність рядків у наборі, тому подивився приклади на МСДН і зробив так, як там написано
while @@fetch_status=0
але воно не спрацьовує, мій цикл, чомусь, працює вічно, аж 100 разів значить працює, потім автоматично вимикається. В чому проблема? Що не так? Чому @@fetch_status завжди повертає 0, якщо він мав би повернути -1, як тільки вийшов за межі отриманої таблички?