用游标 fetch next from mycuror into @a,@b,@c如果到了游标的底,fetch以后@@fetch_status不再是 0 请问这时@a,@b,@c是最后一条记录的数值呢还是是空值呢?

解决方案 »

  1.   

    create table tb(id int)
    insert into tb select 1 union all select 2
    go
    declare cursor1 CURSOR for select id from tb
    declare @id int
    OPEN cursor1
    FETCH NEXT FROM cursor1 INTO @id
    WHILE @@FETCH_STATUS = 0
      BEGIN
    print @id
    FETCH NEXT FROM cursor1 INTO @id
      end
    CLOSE cursor1
    DEALLOCATE cursor1
    print @id/*
    1
    2
    2*/
    go
    drop table tb可见,游标结束了,但变量值保持原来的值,不受fetch next into 的影响.