http://blog.csdn.net/xluzhong/articles/366984.aspx

解决方案 »

  1.   

    select @db=db from datedb where dbtime=@stimedeclare @sql nvarchar(1000)
    set @sql=N'select fee,@hFee=convert(varchar(20),sum(convert(bigint,fee))) from  '+
             @db+N' t where userphone=@UserPhone group by fee'
    exec sp_executesql @sql,
                       N'@hFee bigint output,@UserPhone varchar(20)',
                       @hFee output,@UserPhone 
      

  2.   

    谢谢楼上的,我原来也这样写过,好象和直接写是一样的,都是同一个错误服务器: 消息 141,级别 15,状态 1,行 1
    向变量赋值的 SELECT 语句不能与数据检索操作结合使用。这个错误是什么原因?
      

  3.   

    select @db=db from datedb where dbtime=@stimeset @sql=N'select @hFee=convert(varchar(20),sum(convert(bigint,fee))) from  '+
             @db+N' t where userphone=@UserPhone'
    exec sp_executesql @sql,
                       N'@hFee varchar(20) output,@UserPhone varchar(20)',
                       @a output,@UserPhone 这样是可以运行的...
    不过这个和上面的结果会有什么区别??
      

  4.   

    美仔细看,呵呵。向变量赋值的 SELECT 语句不能与数据检索操作结合使用
    你上面的是对的