@count是传入得参数
这里不让保存,错误提示是:'count *'附近由语法错误.
这里的@count我想设置为自己可以输入的参数,所以请不要说把'count *'改成一个具体数字就可以之类的, 请高手赐教.
CREATE PROCEDURE dbo.GetTopNews 

(
@newsKindID int,
@count int
)

AS
select top count * from tb_News where newsKindID=@newsKindID 
RETURN

解决方案 »

  1.   

    CREATE PROCEDURE dbo.GetTopNews 

    (
    @newsKindID int,
    @count int
    )

    AS
    Begin
    Declare @S Varchar(8000)
    Select @S = ' select top ' + Cast(@count As Varchar) +' * from tb_News where newsKindID=' + Cast(newsKindID  As Varchar)
    EXEC(@S)
    RETURN
    End
    GO
      

  2.   

    count -> @count 试试.
      

  3.   

    或者CREATE PROCEDURE dbo.GetTopNews 

    (
    @newsKindID int,
    @count int
    )

    AS
    Begin
    SET ROWCOUNT @count
    select * from tb_News where newsKindID=@newsKindID 
    RETURN
    End
    GO
      

  4.   

    不会是select count(*) from tb_News where newsKindID=@newsKindID吧???
      

  5.   

    -- tryexec ('select top ' + @count + ' * from tb_News where newsKindID = ' + @newsKindID + ')
      

  6.   

    CREATE PROCEDURE dbo.GetTopNews 

    (
    @newsKindID int,
    @count int
    )

    AS
    Begin
    SET ROWCOUNT @count
    select * from tb_News where newsKindID=@newsKindID 
    RETURN
    End
    GO是可以保存,但select * from tb_News where newsKindID=@newsKindID中没有涉及到 @count,总感觉不对
    请再详细赐教
      

  7.   

    mndn_nana() ( ) 信誉:100  2007-08-21 15:51:56  得分: 0  
     
     
       CREATE PROCEDURE dbo.GetTopNews 

    (
    @newsKindID int,
    @count int
    )

    AS
    Begin
    SET ROWCOUNT @count
    select * from tb_News where newsKindID=@newsKindID 
    RETURN
    End
    GO是可以保存,但select * from tb_News where newsKindID=@newsKindID中没有涉及到 @count,总感觉不对
    请再详细赐教
      
    -----------注意上面的 
    SET ROWCOUNT @count這個限制了顯示的行數的。你可以測試下。
      

  8.   

    不是 不会是select count(*) from tb_News where newsKindID=@newsKindID
    是想把tb_News 中的前@count行的信息查询出来,然后要绑定
      

  9.   

    难道不能 top @count 用吗?
      

  10.   

    mndn_nana() ( ) 信誉:100  2007-08-21 15:58:03  得分: 0  
     
     
       难道不能 top @count 用吗?
      
     
    ---------
    MS SQL 2000裡面不可以。如果你要top @count ,就要和我開始寫的那個一樣,使用動態SQL 語句。
      

  11.   

    top @count 不能用 top后面只能跟常量
      

  12.   

    -- tryexec ('select top ' + @count + ' * from tb_News where newsKindID = ' + @newsKindID + ')
    没成功CREATE PROCEDURE dbo.GetTopNews 

    (
    @newsKindID int,
    @count int
    )

    AS
    Begin
    Declare @S Varchar(8000)
    Select @S = ' select top ' + Cast(@count As Varchar) +' * from tb_News where newsKindID=' + Cast(newsKindID  As Varchar)
    EXEC(@S)
    RETURN
    End
    GO
    可以用,谢谢2位
    非常感谢
      

  13.   

    唉 我也跟着看了好久了 就是没有搞明白动态SQL啊。。