打掉了两个引号,再发一次。create proc a
as
begin
  declare @name varchar(20) 
  select @name = 'buyproduct'
  drop table @name
end
运行说@name有错误

解决方案 »

  1.   

    create proc a
    as
    begin
      declare @name varchar(20) 
      select @name = 'buyproduct'    --要加单引号
      EXEC('drop table '+@name+'')    --表名是变量,要使用动态SQL语句
    end
      

  2.   

    在字段名或表名中如果使用变量的话就得用楼上所说的方法来执行SQL语句,where 条件中可以直接使用
    变量.
      

  3.   

    是啊
    要用動態執行哦
    exec('')或sq_executesql()
    就可以的了
      

  4.   

    同意: paoluo(一天到晚游泳的鱼)