不可以在EXEC後面的語句中建立局部臨時表的,

解决方案 »

  1.   

    declare @dd varchar(50)
    set @dd='ff'
    exec('create table #dd
    (
    '+@dd+' varchar(50)
    )
    select * from #dd
    ')
      

  2.   

    或者declare @dd varchar(50)
    set @dd='ff'
    exec('create table ##dd
    (
    '+@dd+' varchar(50)
    )
    ')exec ('
    select * from ##dd
    ')
      

  3.   

    写少了declare @dd varchar(50)
    set @dd='ff'
    exec('create table ##dd
    (
    '+@dd+' varchar(50)
    )
    ')exec ('
    select * from ##dd
    ')exec ('
    drop table ##dd
    ')
      

  4.   

    在執行EXEC命令後,
    臨時表也就不存在了,
    但是用EXEC可以建立全局臨時表
      

  5.   

    临时表 #dd 为局部临时表,作用范围在exec()执行过程中,超出这个执行范围临时表就无效了。declare @dd varchar(50)
    set @dd='ff'
    exec('create table #dd
    (
    '+@dd+' varchar(50)
    )select * from #dd
    ')
      

  6.   

    declare @dd varchar(50)
    set @dd='ff'
    create table #dd
    (id int  identity(1,1))exec('alter table #dd add ' +@dd + ' varchar(50)')select * from #dd
      

  7.   

    declare @dd varchar(50)
    set @dd='ff'
    exec('create table #dd
    (
    '+@dd+' varchar(50)
    );select * from #dd')这样就可以了!!!把两个语句用一个exec执行