exec将命令串运行在自己的环境内,而不是当前用户的会话环境。你建立的临时表当exec结束时就自动被删除了。

解决方案 »

  1.   

    你犯了:
    if (1==2)
    {
      int i;
      i=5;
    }
    print i;
    错误!
      

  2.   

    请问我要达到同样的效果的话有没有好的办法!谢谢w_rose(w_rose)
      

  3.   

    #局部临时表的生命周期的会话!!##全局临时表的生命周期是全局它是会冲突的!你可以打开两个查询分析器,一个查询分析器的连接算是一个会话!
    你分别创建两个同名的临时表是不会发生错误的!
    而你别创建两个同名的全局临时表是会发生错误的!而一个exec是一个单独会话!就象上面的例子!haha...
    你应该:
    int i
    if (1==2)
    {
      i=5;
    }
    print i;
      

  4.   

    to:pengdali(大力) 现在我应该怎么解决?
      

  5.   

    declare @str varchar(1000)
    set @str='create table ##tempgoods_table(goodsid varchar(10))'
    exec(@str)
    select * from ##tempgoods_table
    drop table ##tempgoods_table
      

  6.   

    谢谢pengdali(大力),现在我明白了,谢谢各位的帮忙!!结贴