PROCEDURE [dbo].[setInfo] @Dt YfInfo READONLY, //用户定义表类型
AS
BEGIN
Declare @NowPh nvarchar(20) = null;
Declare @OldPh nvarchar(20) = null;

Declare Gravida_Cursor CURSOR  FOR
select [批号]
from @Dt
order by [批号]

open Gravida_Cursor

Fetch next From Gravida_Cursor Into @NowPh WHILE (@@FETCH_STATUS = 0)
begin
set @OldPh = @NowPh
end  
    Close Gravida_Cursor   
    Deallocate Gravida_Cursor
END在执行到 WHILE (@@FETCH_STATUS = 0) 执行不过去 超时,请高手指点

解决方案 »

  1.   

    PROCEDURE [dbo].[setInfo]@Dt YfInfo READONLY, //用户定义表类型
    AS
    BEGIN
    Declare @NowPh nvarchar(20) = null;
    Declare @OldPh nvarchar(20) = null;Declare Gravida_Cursor CURSOR FOR
    select [批号]
    from @Dt
    order by [批号]open Gravida_CursorFetch next From Gravida_Cursor Into @NowPhWHILE (@@FETCH_STATUS = 0)
    begin
    set @OldPh = @NowPh
    Fetch next From Gravida_Cursor Into @NowPh
    end  
      Close Gravida_Cursor  
      Deallocate Gravida_Cursor
    END
      

  2.   

    你去看看游标的语法吧!while里面没有将下一条数据取到变量里,缺fetch next from ... into ...加上去试试!
      

  3.   

    WHILE (@@FETCH_STATUS = 0)
    begin
    set @OldPh = @NowPh
    Fetch next From Gravida_Cursor Into @NowPh
    end  少了這一段
      

  4.   

    太感谢 roy_88,AcHerat 两位,谢谢!