create proc test
@tb varchar(10)
as
declare @recordcount
set @recordcount='select count(*) from '+@tb
exec(@recordcount)

解决方案 »

  1.   

    count(*)返回的不是int吗?
    大家用什麽工具调试存储过程?
      

  2.   

    to  LoveCherry:
    你这种方法返回的是:'s'
     
    我想得到表中的记录总数!create proc test
    @tb varchar(10),
    @RecordCount int out
    as
    SET  @RecordCount = convert(int,'SELECT  COUNT(*) FROM '+@tb )    
         EXEC (@RecordCount)   
    [Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 'SELECT  COUNT(*) FROM newsgroup' 转换为数据类型为 int 的列时发生语法错误。
      

  3.   

    真是晕!
    SELECT  COUNT(*) FROM Table
    int i;
    SqlDataReader Dr=读取ExecuteReader();
    while(Dr.Read())
    {
        i=Dr[0].ToString();
    }
    Console.WriteLine(i.ToString());
    条数不就出来了吗!!
      

  4.   

    @RecordCount这是存储过程中的内部变量!要是能有sql语句我早就做出来了!
      

  5.   

    试试这样:@SqlString = 'SELECT @RecordCount = COUNT(*) FROM '+@tb
         EXEC (@SqlString)   
      

  6.   

    哪儿的存储过程?
    sql还是orcle?
      

  7.   

    试了!set @SqlString = 'SELECT @RecordCount = COUNT(*) FROM '+@tb
         EXEC (@SqlString)   
     
    @recordCount=0 , 应该有8条记录!
      

  8.   

    create proc test
    @tb varchar(10)
    as
    declare @recordcount varchar(100)
    set @recordcount='select count(*) from '+@tb
    exec(@recordcount)
    GO
    怎可能得不到结果那?
      

  9.   


    CREATE PROCEDURE test
    @tb            varchar(100),
    @RecordCount   varchar(200),    
    @PageSize      int,
    @PageCount     intasdeclare @sql varchar(600)          set  @RecordCount = 'SELECT  COUNT(*) FROM '+@tb
      
    set  @PageCount =ceiling (cast(@RecordCount as int)  * 1.0/@PageSize)
    exec (@pageCount)
    服务器: 消息 8114,级别 16,状态 5,过程 test,行 13
    [Microsoft][ODBC SQL Server Driver][SQL Server]将数据类型 varchar 转换为 numeric 时出错。to LoveCherry:存储过程真是新手!不好意思! 总是包这个错!
    祝大家鸡年金鸡报晓,技术精进,多挣money
      

  10.   

    select了以后要用DataReader来读取数据
    如果你要直接在存储过程里面返回变量就应该设置变量out
    你把@RecordCount一个字符串转变为int能不报错吗?
      

  11.   

    你可以看一下这个帖子
    http://community.csdn.net/Expert/topic/3592/3592434.xml?temp=.4338037
      

  12.   

    这个http://community.csdn.net/Expert/topic/3592/3592434.xml?temp=.4338037正是我想要的  --统计总记录数
      select @allCount=count(ProductId) from @tb
    但是他的表名是写死的。可是改成变量又包错!
      

  13.   

    这个http://community.csdn.net/Expert/topic/3592/3592434.xml?temp=.4338037正是我想要的  
     CREATE  PROCEDURE  test  
      @tb                        varchar(100), 
      @allCount int output,   --返回总记录数
      @pageSize int output,   --返回一页的记录数   --统计总记录数  
       select  @allCount=count(ProductId)  from  @tb  
    但是他的表名是写死的。可是改成变量又包错!
      

  14.   

    http://community.csdn.net/Expert/topic/3744/3744925.xml?temp=.3584864