set @strsql1='select @Sigle=isnull(@Sigle,'') + rtrim(SigleSelectId) +'','' from (
select top  '+ @SigleTotal +'SigleSelectId  from SigleSelectSubject
order by newid())a'
exec (@strsql1)

解决方案 »

  1.   

    先試下
    首先把字串裡的單引號',變成2個單引號''
    比如你的isnull(@s,'')在字串裡可能要isnull(@s,'''')--4個單引號
      

  2.   

    SET @strsql1 = 'select @Sigle=isnull(@Sigle,'''') + rtrim(SigleSelectId) +'','' from (
                    select top  ' + CAST(@SigleTotal AS VARCHAR(20)) + ' SigleSelectId  from SigleSelectSubject
                                                                           order by newid())a'EXEC SP_EXECUTESQL  @strsql1 ,
                        N'@Sigle AS VARCHAR(20) OUT' ,
                        @Sigle OUTPUT