exec('alter ...'+@ArticleNum +'...')

解决方案 »

  1.   

    ALTER PROCEDURE Sp_selNewArticle @ArticleID bigint,@count int
    as 
    exec ('select top '+ @count +' * from db_Article where checkup=1 and classname='''+@ArticleID+'''')
      

  2.   

    select top @ArticleNum * from db_Article where checkup=1 and classname=@ArticleID换成
    exec('select top '+@ArticleNum+' * from db_Article where checkup=1 and classname=+'@ArticleID ')
      

  3.   

    exec('ALTER PROCEDURE Sp_selNewArticle '+ @ArticleNum + 
         'bigint,' + @ArticleID + ' bigint as select top ' + 
         @ArticleNum + ' * from db_Article where checkup=1 and classname=' + @ArticleID
        )
      

  4.   

    ALTER PROCEDURE Sp_selNewArticle 
    @ArticleNum bigint,
    @ArticleID bigint 
    as 
    declare @s varchar(8000)
    set @s='select top '+cast(@ArticleNum as varchar)+' * from db_Article where checkup=1 and classname='+cast(@ArticleID as varchar)
    exec(@s)
      

  5.   

    有一个好办法:
    set rowcount @n设定查询的条数,就可以了