CREATE PROCEDURE bbs_docount
@tblName      varchar(255),       -- 表名
@fldName      varchar(255),       -- 字段名
@strWhere     varchar(1000) = '',  -- 查询条件 (注意: 加 where)
@RecordCount int output
 AS
declare  @strSQL   varchar(1000)
set @strSQL = 'select '+@RecordCount+'=CONVERT(int,Count('+@fldName+')) from [' + @tblName + ']'+@strWhere
exec (@strSQL)
GO

解决方案 »

  1.   

    我想通过这个存储过程来统计@tblName表中的@fldName记录总数..将统计录值转给@RecordCount
    但是提示出错:
    将 varchar 值 'select ' 转换为数据类型为 int 的列时发生语法错误。CREATE PROCEDURE bbs_docount
    @tblName      varchar(255),       -- 表名
    @fldName      varchar(255),       -- 字段名
    @strWhere     varchar(1000) = '',  -- 查询条件 (注意: 加 where)
    @RecordCount int output
     AS
    declare  @strSQL   varchar(1000)
    set @strSQL = "select "+@RecordCount+"=CONVERT(int,Count("+@fldName+")) from [" + @tblName + "]"+@strWhere
    exec (@strSQL)
    GO
      

  2.   

    rongercao(草哥) ( ) 信誉:99 
    是什么意思单/双引号没有什么区别吧
      

  3.   

    我想通过这个存储过程来统计@tblName表中的@fldName记录总数..将统计录值转给@RecordCount
    但是提示出错:
    将 varchar 值 'select ' 转换为数据类型为 int 的列时发生语法错误。CREATE PROCEDURE bbs_docount
    @tblName      varchar(255),       -- 表名
    @fldName      varchar(255),       -- 字段名
    @strWhere     varchar(1000) = '',  -- 查询条件 (注意: 加 where)
    @RecordCount int output
     AS
    declare  @strSQL   varchar(1000)
    set @strSQL = "select "+@RecordCount+"=CONVERT(int,Count("+@fldName+")) from [" + @tblName + "]"+@strWhere
    exec (@strSQL)
    GO
      

  4.   

    CREATE PROCEDURE bbs_docount
    @tblName      varchar(255),       -- 表名
    @fldName      varchar(255),       -- 字段名
    @strWhere     varchar(1000) = '',  -- 查询条件 (注意: 加 where)
    @RecordCount int output
    AS
    declare  @strSQL   nvarchar(8000)
    set @strSQL = 'select @RecordCount=Count('+@fldName+') from [' + @tblName + '] '+@strWhere
    exec sp_executesql @sql,N'@RecordCount int output',@RecordCount output
    GO