例如我创建了一个这样的存储过程,在内部有这句 select top @theNum theTypeName from typeTable,为什么这句使用参数提示语法错误?CREATE     PROCEDURE [lr].[calTypeNameValue] @theNum int AS
..............
..............
select top @theNum theTypeName from typeTable
..............

解决方案 »

  1.   

    select top @theNum=theTypeName from typeTable 
      

  2.   

    select top (@theNum) theTypeName from typeTable 2005才能这么用
      

  3.   

    错了  你给的这个参数只能做条件咯~~~
    在where后面用
    除非你加output
      

  4.   

    ......
    declare @sql varchar(8000)
    set @sql='select top '+ltrim(@theNum)+' theTypeName from typeTable'
    exec (@sql)
    ......
      

  5.   

    select top @theNum=theTypeName from typeTable
      

  6.   


    什么意思,把theTypeName 赋值给@theNum ?
      

  7.   


    什么意思,把theTypeName 赋值给@theNum ?
      

  8.   


    我这个sql语句是用于游标的数据集declare typeNameCursor cursor for
    exec (@sql)按照你的方法,提示语法出错,但是如果单独执行,你的方法可以,用于给游标调用的数据集,应该怎么写?
      

  9.   

    DECLARE @SQL NVARCHAR(4000)
    SET @SQL='select top '+LTRIM(@theNum)+'theTypeName from typeTable'
    EXEC(@SQL)看看动态SQL的基本语法
      

  10.   

    在 EXEC(@SQL) 这里提示语法错误CREATE    PROCEDURE [lr].[calTypeNameValue] @theNum int AS 
    ........
    ........
    DECLARE @SQL NVARCHAR(4000)
    SET @SQL='select top '+LTRIM(@theNum)+'theTypeName from typeTable'declare typeNameCursor cursor for 
    EXEC(@SQL)
    .........
    .........
      

  11.   

    不用一条一条取了,要不然得插入表里面的呀
    INSERT #T EXEC(@SQL)FOR SELECT * FROM #T