exec('drop table  '+@tablename)

解决方案 »

  1.   

    declare @tablename    varchar(50)
    set  @tablename = 'usertable' exec('drop table '+@tablename)
      

  2.   

    declare @s_tablename varchar(50)
    declare @s_sql varchar(200)
    if exists(select * from sysobjects where id = object_id(@s_tablename))
      begin
        set @s_sql = 'Drop Table [' + @s_tablename + ']'
        exec(@s_sql)
      end
      

  3.   

    老兄如果没有人UP你的帖子一下就沉了,所以你不给人UP,你就DOWN吧exec('drop table  '+@tablename)
      

  4.   

    完全赞同 wudan8057(开心每一天) 的写法,我曾经因为少了[]而出过错
      

  5.   

    表名是变量,要使用动态SQL语句
    declare @tablename    varchar(50)
    set  @tablename = 'usertable'
    exec('drop table  '+@tablename)
      

  6.   

    CREATE TRIGGER TRIGGER NAME ON [dbo].表
    FOR INSERT, UPDATE, DELETE 
    AS
    begin
     declare @tablename varchar(20)
    end
      

  7.   

    表名和字段名不能直接变量处理,要用动态sql语句
      

  8.   

    CREATE TRIGGER TRIGGER NAME ON [dbo].表
    FOR INSERT, UPDATE, DELETE 
    AS
    begin
     declare @tablename varchar(20)
     set @tablename=' 表名 '
     exec('drop table '+@tablename)
    end
      

  9.   

    create trigger dbo.trU_aa
    on tabx
    after update
    as
    if update(salary)
    begin
    declare @tablename varchar(100)
    set @tablename='ta'
    exec ('drop table '+@tablename)
    print 'OK!'
    end
    go--刪除
    drop trigger dbo.trU_aa--測試
    update tabx
    set salary=5588
    where person_no=24115
      

  10.   

    如果SET QUOTED_IDENTIFIER ON 的话,可以用""代替[]解决楼主问题的方法关键是exec(@chvSql)