exec('select sum(数量) from '+@table)
运行正常
select @c=sum(数量) from 仓库_1
运行正常
exec('select @c=sum(数量) from '+@table)
运行不正常
这句该怎样写才正确?

解决方案 »

  1.   

    exec('select @c=sum(数量) from '+@table) 这个是给变量副职   所以 执行的时候  既没有结果集  也没有 影响行数!我是小菜鸟!  说的不好清见谅,  希望能够帮到你!
      

  2.   

    exec('select' @c=sum(数量) from '+@table) declare str varchar(200)
    set str = "declare @c varchar(20); varchar(20);select @c = sum(数量) from " + @table ;
    sp_ExcuteSql(str);//sp_ExcuteSql函数应该是这样的
      

  3.   

    exec('declear @c float; select @c=sum(数量) from '+@table) 
    @c在那里声明
      

  4.   


    exec('declare @c float  select @c=sum(列) from table  print(@c)')
    这样写
      

  5.   

    exec执行的时候,他只管括号内的语句,,括号外的对他无作用的,所以说你的声音@c在外面肯定是不行的。
      

  6.   

    exec 是不可以的,应该用sp_executesql   ,参考如下代码
    declare @sqlstr nvarchar(1000)
    declare @c int
    set @sqlstr=N'select @c=count(*) from sysobjects'
    exec sp_executesql   
                    @sqlstr,   
                    N'@c int output',
                    @c=@c output
    select @c
      

  7.   

    送lz一个有趣且可以学习的脚本
    http://topic.csdn.net/u/20080429/01/ccb2d78d-d7cd-4332-8fd8-667714f2ed62.html
      

  8.   


    exec('select '+ @c + '=sum(数量) from '+@table)