请各位高手帮我改一下下面存储过程,总是提示类型转换出错,
create proc   test (@aaa int output,@bbb nvarchar(100))
as
declare @sqlquery nvarchar(max)
set @sqlquery='select '+@aaa+'=count(*) from '+@bbb +'select '+@aaa
exec @sqlquery我是想获取表的记录条数,上面语句是执行得通的,但是当传入参数时就不通了,总是提示在将 varchar 值 'select ' 转换成数据类型 int 时失败DECLARE @AAA INT
exec test @aaa,'t_storrealin'
请问我要怎么来改呢?我想把表的记录数赋值给我我传入的一个参数,最后输出这个参数的值

解决方案 »

  1.   

    看了你的存储过程,好像只是为了得到任何一个表的行数
    何不直接只用一个语句如下:
    Declare @NumofRow int
    Select @NumofRow=Count(1) from 表名
    上面两行执行完了@NumofRow中就是你要的值了
     
      

  2.   

    我需要将传递进来的一个参数做为接收COUNT的值,最后把这个参数给输出啊
      

  3.   


    create proc test
    @bbb nvarchar(100),
    @aaa int output
    as
    declare @sqlquery nvarchar(2000)
    set @sqlquery='select @c=count(*) from '+@bbb 
    exec sp_executesql @sqlquery,N'@c int output',@aaa output
    go
      

  4.   

    set @sqlquery='select '+cast(@aaa as varchar(10))+'=count(*) from '+@bbb +'select '+cast(@aaa as varchar(10))将@aaa给转换成varchar类型试试看。