求一个存储过程:
现有学生表eduClassStud(eduClass_ID,Stud_No),其中,Stud_No现在都是空的,我现在想给每一个班级的Stud_No赋值,每一个班级Stud_No从1开始,顺序递增,Stud_NO为smallint类型

解决方案 »

  1.   

    我补充补充,数据已经存在数据库中,Stud_No是新加的字段。
    我想存储过程的功能是给一个参数eduClass_ID,然后就给这个eduClass_ID下的每一个数据Stud_NO赋值,从1开始,顺序递增。eduClass_ID,Stud_No 都不是表主键
      

  2.   

    去MSSQL区问问能更快的得到结果呵呵
      

  3.   

    写个存储过程,利用游标update一遍或把那字段改成自增字段
      

  4.   

    CREATE PROCEDURE AddStuId 
    @eduClass_ID1 int,
    @values nvarchar(255)=null out
    AS
    declare @maxStudNo int;
    declare @eduClass_ID nvarchar(4);
    declare @Stud_No int;
    set @maxStudNo= (Select max(Stud_No) from sutdents);
    declare Add_ID cursor for select eduClass_ID ,Stud_No from eduClassStud where Stud_No  is null and eduClass_ID= @eduClass_ID1 order by sid;
    open Add_ID;
    fetch next from Add_ID  into @eduClass_ID ,@Stud_No ;
    while @@fetch_status = 0
    begin
      set @maxStudNo= @maxStudNo+ 1;
      update sutdents set Stud_No  = @maxStudNo where eduClass_ID  = @eduClass_ID  ;
      fetch next from Add_ID  into @eduClass_ID ,@Stud_No ;
    end
    close Add_ID;
    DEALLOCATE Add_ID;
      

  5.   

    不要用游标,效率很低,使用如下思路:
    1、增加一个自增字段;
       Alter Table eduClassStud Add StudentID int IDentity(1, 1)
    2、用自增字段的值更新Stud_No;
       Update eduClassStud Set Stud_No = Cast(Student_ID as varchar)
    3、删除增加的自增字段
       Alter Table eduClassStud DFrop Column Student_ID
      

  6.   

    看题!他要求每个班级的 Stud_No 都是递增的,用自增 变量无法做到这点!