求教一个存储过程问题在存储过程里写一条查询,用到top,在top后面不能跟变量?只能确定的数值吗?如果我要这个值是动态的怎么办?

解决方案 »

  1.   

    用字符拼接,然后再用EXEC()执行
      

  2.   

    declare @sql varchar(1000)
    declare @degreename varchar(100)
    create table #Temp2(QuesID bigint,QuesTitle varchar(2000))
    set @degreename='''高难度'''
    set @sql='insert into #Temp2  select top '+@HighDegreeNum+' QuesID, QuesTitle from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid() '
    exec(@sql)
      

  3.   

    --tryuse pubs
    godeclare @top int
    set @top=5
    exec('select top '+@top+' * from titles')