要用动态语句:
exec ('select top '+@num+' News_news_id,News_news_title,News_news_type_id from News_news where News_news_type_id='+@typeid+'  order by News_news_id desc')

解决方案 »

  1.   

    --改一改!
    exec ('select top '+cast(@num as varchar(10))+' News_news_id,News_news_title,News_news_type_id from News_news where News_news_type_id='+cast(@typeid as varchar(10))+'  order by News_news_id desc')
      

  2.   

    改成下面的样子,
    CREATE PROCEDURE  id_hydt 
    @typeid int,
    @num int
    AS
    declare @sql varchar(2000)
    set @sql='select top '+@num+' News_news_id,News_news_title,News_news_type_id from News_news where News_news_type_id='''+@typeid+'''  order by News_news_id desc'
    exec(@sql)
    GO