代码如下:
declare @RecordCount int
declare @RecordCount1 nvarchar(50)
declare @sql nvarchar(1000)
if(@sortId=0)
--select @RecordCount=count(ID) from Spzs
set @sql='select count('+@ID+') from '+@tableName+' where '+@keywordName+' like '+'''%'+@keywordValue+'%'''
else
set @sql='select count('+@ID+') from '+@tableName+' where ('+@keywordName+' like '+'''%'+@keywordValue+'%'''+') and (mainClass='+cast(@sortId as varchar(100))+')'
--select @RecordCount=count(ID) from Spzs--select @RecordCount
--Exec sp_executesql @sql,@RecordCount output
Exec(@sql)
如何得到count('+@ID+')中的值?谢谢!!

解决方案 »

  1.   

    Exec(@sql)
    =======>
    set @sql='set @recordcount=('+@sql+')'
    Exec sp_executesql @sql,N'@recordcount int output',@recordcount output
    select @recordcount
      

  2.   

    --具体参考下:
    --返回单个值:
    /* 补充 */
    declare @sql nvarchar(200)
    declare @cnt int 
    set @sql=N'select @cnt=count(*) from WQ_STINFO_B '
    exec sp_executesql @sql,N'@cnt int output',@cnt output--返回两个值的方法:
    declare @sql nvarchar(200),@name varchar(10)
    declare @cnt int 
    set @sql=N'select  @cnt=count(*),
                       @name=max(STNM) from Water.dbo.WQ_STINFO_B '
    exec sp_executesql @sql,N'@cnt int output,@name varchar(10) output',@cnt output,@name output
    select @cnt,@name