错误语句是:
set @str='select '+@str+' from SPMS_Stu_Homework as A where A.Stu_ID in(select Stu_ID from SPMS_Student where Stu_Grade = '+convert(varchar(4),@Grade)+' and Stu_Class = '+convert(varchar(8),@Class)+')  group by A.Stu_ID order BY A.Stu_ID'

解决方案 »

  1.   

    该成这样也不行:
    set @str='select '+@str+' from SPMS_Stu_Homework as A where A.Stu_ID in(select Stu_ID from SPMS_Student where Stu_Grade = '+convert(varchar(4),@Grade)+' and Stu_Class = '+@Class+')  group by A.Stu_ID order BY A.Stu_ID'
    是:
    Stu_Class = '+@Class+'这里的问题,我数据库中这个字段是Varchar类型的,长度为20,存储的都是中文,如:软件四班,等等!!!执行的时候输入的也都是中文!!
      

  2.   

    小溪,不是吧,搞这么长的sql语句,强啊 !
      

  3.   

    HOHO,哪位大哥出来说一下啊??
      

  4.   

    set @str=substring(@str,1,len(@str)-1)
    下面加这么一行---
    set @Class='''' + @Class + ''''解决了啊,不过还是谢谢顶的各位啊!!