CREATE PROCEDURE student_test_create
@courseName varchar(15),
@type varchar(10),
@num  int 
as
begin
select top @num *
 from item 
where courseName=@courseName and @type= type  order by newid()
end
GO@num有语法错误???

解决方案 »

  1.   

    CREATE PROCEDURE student_test_create
    @courseName varchar(15),
    @type varchar(10),
    @num  int
    as
    begin
    declare @s nvarchar(2000)
    set @s='select top '+rtrim(@num)+' *
    from item
    where courseName='''+@courseName+''' and type='''+@type+'''  order by newid()'
    exec(@s)
    end
    GO 
      

  2.   

    'select top'+ @num+' * 
    from item 
    where courseName=@courseName and @type= type  order by newid()' 
    exec
      

  3.   

    加上括号就行了CREATE PROCEDURE student_test_create 
    @courseName varchar(15), 
    @type varchar(10), 
    @num  int 
    as 
    begin 
    select top (@num) * 
    from item 
    where courseName=@courseName and @type= type  order by newid() 
    end 
    GO 
      

  4.   

    int +rtrim(@num)+
    varchar  '''+@courseName+''   ''+@type+''