DECLARE @tablename varchar(20)
DECLARE @all int  --总记录数
DECLARE @sql varchar(1000)SELECT @sql = 'SELECT  COUNT(*) FROM ' + @tablename
exec (@sql)
我要把count(*)的值付给@all.怎么来表达呢?

解决方案 »

  1.   

    DECLARE @tablename varchar(20)
    DECLARE @all int  --总记录数
    DECLARE @sql nvarchar(1000)
    set @tablename='tb'SELECT @sql = 'SELECT  @all=COUNT(*) FROM ' + @tablename
    exec sp_executesql @sql,N'@all int output',@all output  
    select @all
      

  2.   

    3. 输出参数 
    declare @num int, 
            @sqls nvarchar(4000) 
    set @sqls='select count(*) from tableName' 
    exec(@sqls) 
    --如何将exec执行结果放入变量中? declare @num int, 
                   @sqls nvarchar(4000) 
    set @sqls='select @a=count(*) from tableName ' 
    exec sp_executesql @sqls,N'@a int output',@num output 
    select @num 
      

  3.   

    declare @num int, @sqls nvarchar(4000) 
    set @sqls='select @a=count(*) from tableName ' 
    exec sp_executesql @sqls,N'@a int output',@num output 
    select @num 
      

  4.   

    DECLARE @tablename varchar(20)
    DECLARE @all int  --总记录数
    DECLARE @sql nvarchar(1000)
    SELECT @sql = 'SELECT  @all=COUNT(*) FROM '+ @tablename
    exec sp_executesql @sql,N'@all int out',@all out
    print @all========================================
    http://www.dbtuning.cn
    主营:中小企业数据库管理、优化、调校服务
    ========================================