declare @sql nvarchar(1000)
declare @ss_count int,@looptimes int
set @ss_count=(select count(*) from SS_STUDENT2)
set @looptimes=@ss_count*2/3
set @sql='insert into SS_STUDENT2_MODEL(student_id,teacher_id) '
     +' select Top '+@looptimes+' student_id,teacher_id from SS_STUDENT2 Order By NewID()'
exex(@sql)

解决方案 »

  1.   

    http://blog.csdn.net/xluzhong/articles/366984.aspx
      

  2.   

    一楼的语句还是有点问题,@looptimes是Int型,加入动态语句时要做下处理的。declare @ss_count int,
    @looptimes int
    @S Varchar(8000)
    set @ss_count=(select count(*) from SS_STUDENT2)
    set @looptimes=@ss_count*2/3Set @S='insert into SS_STUDENT2_MODEL(student_id,teacher_id) select Top '+Rtrim(@looptimes)+' student_id,teacher_id  from SS_STUDENT2 Order By NewID()'
    EXEC(@S)
      

  3.   

    改下declare @ss_count int,
    @looptimes int,
    @S Varchar(8000)
    set @ss_count=(select count(*) from SS_STUDENT2)
    set @looptimes=@ss_count*2/3Set @S='insert into SS_STUDENT2_MODEL(student_id,teacher_id) select Top '+Rtrim(@looptimes)+' student_id,teacher_id  from SS_STUDENT2 Order By NewID()'
    EXEC(@S)
      

  4.   

    太感谢大家了,~~~    我做毕业设计急着要,没想到可以得到大家的这么热心的帮助,再次衷心谢谢大家~~~
      谢谢所有回复这个帖子,所有回复 CSDN 有疑问帖子的热心同仁们~~!!!!!!
      致敬!!!!!!!!!!!!!!!