EXECUTE
执行标量值的用户定义函数、系统过程、用户定义存储过程或扩展存储过程。同时支持 Transact-SQL 批处理内的字符串的执行 

解决方案 »

  1.   

    肯定会出问题。
    @s='select bl_hr'+cast(@i as varchar(2))+' from tablename'
    这不是一个简单的字符串赋值,是实上这是一个含有查询的赋值。
      

  2.   

    这样也是可以 的啊   EXEC ('DROP TABLE ' + @tablename)
      

  3.   

    标量值指常量或字面值.
    关于第二句为什么会错,是否exec不对执行内容进行编译?达人请解惑