create PROCEDURE bookcursor
@bookID varCHAR(10)
 AS
declare 
@bookIDID VARCHAR(10),
@bookName VARCHAR(10),
@bookprice money
select *  from  book WHERE bookID=@bookID
begin 
declare cur_01 cursor scroll dynamic for select bookID from  book WHERE bookID=@bookID
open cur_01
fetch next from cur_01 into       @bookIDID
while(@@fetch_status=0)
  begin
    declare cur_02 cursor scroll dynamic for  select bookName  from  book WHERE bookID=@bookID
   open cur_02
   fetch next from cur_02 into    @bookName
while(@@fetch_status=0)
begin
declare cur_03 cursor scroll dynamic for select bookprice  from  book WHERE bookID=@bookID
open cur_03
fetch next from cur_03 into      @bookprice
while(@@fetch_status=0)
 begin 
  insert into book (bookID,bookName,bookprice)VALUES(@bookID,@bookName,@bookprice)
  fetch next from cur_03 into @bookprice
end  
close cur_03
deallocate cur_03
    fetch next from cur_02 into  @bookName
end
   close cur_02
deallocate cur_02
fetch next from cur_01 into @bookIDID
end
close cur_01
deallocate cur_01
endselect *  from  book WHERE bookID=@bookID
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON

解决方案 »

  1.   

    这是我的BOOK表:bookID    bookName                                bookprice2 《C#控件开发指南》                        45.0000
    3 《我的仲夏之旅》                        38.0000
    4 《我仇视漂亮的女人》               30.0000
    5 《我的女朋友是个很丰满的瘦子》      38.0000
    1 《我的小小城堡》                         126.0000
      

  2.   

    LZ的游标,bookIDID,bookName,bookprice取的是同一行数据吧,为什么用3个游标呢?
    直接用fetch next from cur into @id,@name,@price不就可以了?
    或者我看错了?
      

  3.   

    用几个游标不是问题的重点——我这样是做个验证,
    关键是问什么它停不下来
    UP
    UP
    UP
    UP
    `
    `
    `
    `
    `
    `
      

  4.   

    bookid是唯一的么?如果是唯一的为什么要用游标???奇怪
      

  5.   

    用不用游标,跟bookID是不是唯一的有关系吗?