create procedure sp_aa
(
@where varchar(8000)='',--条件
@sqlstr varchar(8000)=null,
@total varchar(50) output
)
ASset @sqlstr='select '+@total+'=count(id) from aa '+@whereexec(@sqlstr)为什么这样返回的@total为空,表中有记录的

解决方案 »

  1.   

    create procedure sp_aa
    (
    @where varchar(8000)='',--条件
    @sqlstr nvarchar(4000)=null,
    @total varchar(50) output
    )
    ASset @sqlstr='select @total=count(id) from sysobjects '+@whereexec sp_executesql @sqlstr,N'@total varchar(50) output',@total outputdeclare @total varchar(50) 
    exec sp_aa '',NULL,@total output
    print @total
      

  2.   

    上面的代码自己修改下,我是用sysobjects表为例子,返回sysobjects表行数.