我试了没问题。 begin declare swim cursor --声明游标swim for select * from aa open swim fetch next from swim --取数据(desk表为空) --select @@fetch_status if @@fetch_status=0 begin print '表中有数据...'; close swim; deallocate swim; end else begin print '表中无数据!'; close swim; deallocate swim; end end /* aa bb ----------- -------------------------------------------------- (所影响的行数为 0 行)表中无数据!*/
@@Fetch_Status=0 说明有数据 @@Fetch_Status=-1 没有数据
begin declare swim cursor --声明游标swim for select * from aa open swim fetch next from swim --取数据(desk表为空) if @@fetch_status=0 begin print '表中有数据...'; close swim; deallocate swim; end else begin print @@fetch_status print '表中无数据!'; close swim; deallocate swim; end end /* aa bb ----------- -------------------------------------------------- (所影响的行数为 0 行)-1 表中无数据! */
if @@Fetch_Status=0
不是没有数据吧。
所以才奇怪,为什么没有执行"print '表中无数据!';"这句话呢?
begin
declare swim cursor --声明游标swim
for select * from aa
open swim
fetch next from swim --取数据(desk表为空)
--select @@fetch_status
if @@fetch_status=0
begin
print '表中有数据...';
close swim;
deallocate swim;
end
else
begin
print '表中无数据!';
close swim;
deallocate swim;
end
end
/*
aa bb
----------- -------------------------------------------------- (所影响的行数为 0 行)表中无数据!*/
@@Fetch_Status=0
说明有数据
@@Fetch_Status=-1
没有数据
declare swim cursor --声明游标swim
for select * from aa
open swim
fetch next from swim --取数据(desk表为空)
if @@fetch_status=0
begin
print '表中有数据...';
close swim;
deallocate swim;
end
else
begin
print @@fetch_status
print '表中无数据!';
close swim;
deallocate swim;
end
end
/*
aa bb
----------- -------------------------------------------------- (所影响的行数为 0 行)-1
表中无数据!
*/