求一个存储过程:
现有学生表eduClassStud(eduClass_ID,Stud_No),其中,Stud_No现在都是空的,我现在想给每一个班级的Stud_No赋值,每一个班级Stud_No从1开始,顺序递增,Stud_NO为smallint类型
现有学生表eduClassStud(eduClass_ID,Stud_No),其中,Stud_No现在都是空的,我现在想给每一个班级的Stud_No赋值,每一个班级Stud_No从1开始,顺序递增,Stud_NO为smallint类型
我想存储过程的功能是给一个参数eduClass_ID,然后就给这个eduClass_ID下的每一个数据Stud_NO赋值,从1开始,顺序递增。eduClass_ID,Stud_No 都不是表主键
@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;
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