ALTER PROCEDURE sp_ExamOnLine_GetQuestion
@TiXingNum int
AS
SELECT  top @TiXingNum * FROM ExamOnLine_Question提示top附近出错,我用10替代@TiXingNum就没错了,是不是语句中@TiXingNum那里不能用参数?
可是我这条语句想要的功能一定要用这个参数,我应该怎么改呢?求高手指教

解决方案 »

  1.   


    Alter PROCEDURE sp_ExamOnLine_GetQuestion
    @TiXingNum int
    AS
    Declare @S Varchar(1000)
    Set @S='Select TOP '+Rtrim(@TiXingNum)+' * from ExamOnLine_Question'
    EXEC(@S)
    GO
      

  2.   

    你先用IDENTITY(int, 1,1)函数,对你的数据表ExamOnLine_Question进行查询(当然你可以根据要求对某一个字段来排序),,然后放到临时表中,如下
    select IDENTITY(int, 1,1) as Nums,* into #tmp1 from ExamOnLine_Question
    然后对临时表#tmp1进行操作,例如要查询前10条记录,那么就这样写:
    select * from #tmp1 where Nums<=10