set @sql= 'select @countSize=count(*) from Cases where'+ @where
@countSize那该如何拼接?

解决方案 »

  1.   

    set @sql= 'select '+@countSize+'=count(*) from Cases where'+ @where
      

  2.   

    在将 varchar 值 'select' 转换成数据类型 int 时失败。
      

  3.   

    类型转换一下!convert(varchar,@countSize)
      

  4.   

    set @strTmp = 'select @Counts=Count(' + @ID + ') FROM '+@tblName+'where '+@where
    exec sp_executesql @strTmp,N'@Counts int out ',@Counts out
      

  5.   

    @countSize  返回  null   
    没数据不是应该返回 0 吗?
      

  6.   

    你的sql不就是要给@countSize赋值吗,所以5楼的答案是正确的
      

  7.   


    照5楼那样 我的语句set @sql= 'select @countSize=count(*) from Cases where'+ @where
    不对吗?
      

  8.   


    set @sql= 'select '+@countSize+'=count(*) from Cases where'+ @where
      

  9.   

    在将 varchar 值 'select' 转换成数据类型 int 时失败。
      

  10.   

    @countSize int output 
    as
    set @sql= 'select @countSize=count(*) from Cases where'+ @where
    exec(@sql)  
    错误:必须声明标量变量 "@countSize"。
    set @sql= 'select '+@countSize+'=count(*) from Cases where'+ @where
    错误:在将 varchar 值 'select' 转换成数据类型 int 时失败。
    set @sql= 'select '+ convert(varchar,@countSize)+'=count(*) from Cases where'+ @where
    结果 @countSize 为null
      

  11.   

    @countSize int output  
    as
    set @sql= 'select @countSize=count(*) from Cases where'+ @where
    exec(@sql)   
    错误:必须声明标量变量 "@countSize"。
    set @sql= 'select '+@countSize+'=count(*) from Cases where'+ @where
    错误:在将 varchar 值 'select' 转换成数据类型 int 时失败。
    set @sql= 'select '+ convert(varchar,@countSize)+'=count(*) from Cases where'+ @where
    结果 @countSize 为null
      

  12.   

    需要声明的变量,declare关键字,其次where需要=把
      

  13.   

    declare @countSize int output   
    as
    set @sql= 'select @countSize=count(*) from Cases where'+ @where
    exec(@sql)   楼主试一下是不是这样
      

  14.   

    @countSize 是声明的变量不能放在''里面的