此种动态查询不行,应该使用动态构造SQL语句的方法实现。

解决方案 »

  1.   

    exesql('select * from '+@t1)
      

  2.   

    sorry, EXECUTE('select * from '+@t1)
      

  3.   

    execute('select * from '+@t1+" where")
      

  4.   

    不能这样查询的,一定要用EXECUTE
    declare @t1 as char(5)
    select @t1 = 'wms_in_task'
    select * from @t1  --这句系统会解释为 select * from 'wms_in_task'(命令语句加字符串)
    而用
    EXECUTE('select * from '+ @t1) --系统会把括号里面的字符串合并为一个字符串'select * from wms_in_task',显然这才是合法的SQL语句