select a=(case when max(StudentID) is null then '1' else max(StudentId)+1 end) from Student2Insert into Student2(StudentID,Sname,Age) select Sname,Age from Student 
这里的insert语句中的StudentID是个数字字段,我想将student中的sname,age两个字段值插入到students2中去,但StudentID字段必须在原来的最大值上加1

解决方案 »

  1.   

    declare @s intset @s=select  case when max(StudentID) is null then '1' else max(StudentId)+1 end  from Student2Insert into Student2(StudentID,Sname,Age) 
    select 
    @s, 
    Sname,Age 
    from Student  
      

  2.   

    Insert into Student2(StudentID,Sname,Age) select Sname,Age from Student   语法有问题
    如果studentid不是自增的,那你只能自己定义变量+1了
      

  3.   

    如果你表中一条记录都没有的话,这样写是没用的。
    用count试试:
    select a=(case when count(StudentID)=0 then '1' else max(StudentId)+1 end) from Student2
      

  4.   

    Insert into Student2(StudentID,Sname,Age) select ISNULL((SELECT MAX(STUDENTID) FROM STUDENT2),0)+1 Sname,Age from Student