日期:2014-05-18  浏览次数:21765 次

游标报错!同时出现游标已存在和游标不存在!!!
SQL code

ALTER PROC P2_OneKeyMergeTreasure(
    @roleID int    
)AS BEGIN
    declare @count int;
    select @count=count(1) from T2_RoleTrea where roleid=@roleID and placeType=1
    if(@count<=1)begin
        return;   
    end 
    declare @srcID int;
    declare @destID int;
    declare @tmpID int;   
    select top 1 @srcID=id from T2_RoleTrea where roleid=618 and placeType=1 order by id;

    declare mycurosr cursor for 
        select id from T2_RoleTrea 
        where roleid=618 and placeType=1 and id!=@srcID order by id;
    open mycursor
    fetch next from mycursor into @destID
    while @@fetch_status=0
    begin 
        exec P2_MergeTreasure @srcID,@destID,@tmpID out;
        set @srcID=@tmpID;
        fetch next from mycursor into @destID
    end 
    close mycursor
    deallocate mycursor
END




错误消息 :
消息 16915,级别 16,状态 1,过程 P2_OneKeyMergeTreasure,第 21 行
名为 'mycurosr' 的游标已存在。
消息 16916,级别 16,状态 1,过程 P2_OneKeyMergeTreasure,第 23 行
名为 'mycursor' 的游标不存在。
消息 16916,级别 16,状态 1,过程 P2_OneKeyMergeTreasure,第 24 行
名为 'mycursor' 的游标不存在。
消息 16916,级别 16,状态 1,过程 P2_OneKeyMergeTreasure,第 31 行
名为 'mycursor' 的游标不存在。
消息 16916,级别 16,状态 1,过程 P2_OneKeyMergeTreasure,第 32 行
名为 'mycursor' 的游标不存在。

------解决方案--------------------
你定义的,和你调用的,不是同一个名称.