create procedure
@tablename varchar(30),
@fieldname integer,
@A1 integer,
@A2 integer
as
select count(*) from @tablename where @fieldname>@A1 and @fieldname<@A2

解决方案 »

  1.   

    稍微改改dobly(塌实学习,诚以待人)的例子,存储过程不允许用参数作为表名,否则报错,具体可以试试!
    可以
    create procedure SelCount
    @tablename varchar(30),
    @fieldname varchar(50),
    @A1 integer,
    @A2 integer
    as
    Exec ("select count(*) from " + @tablename +
    " where " + @fieldname + ">" + @A1 + " and " + @fieldname + "<" + @A2)
      

  2.   

    to : lxcc(虫子|需要点勇气和信心)
    早点看到你这句就好了,前几天刚好用一个存储过程,差不多是这个问题,我是在
    select top @value * from table 中使用,老是通不过,应该也差不多是这个原因吧,要先用str(@value),然后通过
    declare @strtemp nvarchar(500)
    select @strtemp=''
    select @strtemp=@strtemp+'select top'
    select @strtemp=@strtemp+str(@value)
    ....
    最后:
    exec(@strtemp)来执地语句的.呵呵,学习....................
      

  3.   

    今天总算有收获了
    谢谢  lxcc(虫子|需要点勇气和信心)