CREATE PROCEDURE UP_KO_Article_GetTopic
@ClassID int (4) ,
@topx int (4) 
AS
DECLARE topx int

Select top topx=@topx Title,ArticelID from KO_Article where ClassID=@ClassID order by UpdateTime desc
GO我写的这个是错的,想实现select top 可以定制,和where classid=@classid谢谢

解决方案 »

  1.   

    Select top @topx Title,ArticelID from KO_Article where ClassID=@ClassID order by UpdateTime desc
      

  2.   

    没有测试 大致就这样
    拼sql
    然后执行CREATE PROCEDURE UP_KO_Article_GetTopic
    @ClassID int (4) ,
    @topx int (4) 
    AS
    declare @sql varchar(1000)
    set @sql='Select top '+ @topx 'Title,ArticelID from KO_Article where ClassID= ' + @ClassID +' order by UpdateTime desc'
    exec(@sql)
    GO
      

  3.   

    类似CREATE proc P_GetBbsLatestTopic -- 从论坛中选取前@top个帖子
    -- Generated By:   武眉博 
    -- Date Generated: 2006-03-29@top int
    asdeclare @sql nvarchar(1000)
    set @sql='
    select distinct top '
    +
    cast(@top as nvarchar)
    +'
      t.Topic,
    t.LastPosted, 
    t.TopicID, 
    t.LastMessageID,
     u.UserName,
    u.NickName
    from 
    yaf_topic t  join yaf_user yu 
    on yu.UserID = t.UserID
    join tb_accounts_user u 
    on yu.[Name] = u.UserName 
    order by t.LastPosted desc
    '
    exec (@sql)
    GO
      

  4.   

    CREATE PROCEDURE UP_KO_Article_GetTopic
    @ClassID int (4) ,
    @topx int (4) 
    ASdeclare @RecordQuery varchar(5000) --记录查询
    set @RecordQuery='SELECT top '+CONVERT(nvarchar, @topx)+' Title,ArticelID from KO_Article where ClassID='+CONVERT(nvarchar, @ClassID)+' order by UpdateTime desc'
    exec(@RecordQuery)GO
      

  5.   

    Select top @topx Title,ArticelID from KO_Article where ClassID=@ClassID order by UpdateTime desc
      

  6.   

    动态sql,这样写:CREATE PROCEDURE UP_KO_Article_GetTopic
    @ClassID VarChar(4),
    @Topx VarChar(4)
    AS
    DECLARE @Sql VarChar(200)SET @Sql='Select top '+@Topx+ ' Title,ArticelID from KO_Article where ClassID=' +@ClassID+ ' order by UpdateTime desc'Exec(@Sql)