不要关闭连接,一关闭连接,临时表就没有了,你在你的程序最后面,关闭连接前,暂停一下,然后你到Query Analyzer里看看就能看到了

解决方案 »

  1.   

    1.我建的是全局的临时表,带有两个#的,只要sqlserver不重启,它就会存在,会话结束后就没有的那是局部临时表,带一个#的.我想应该不是我关闭连接的问题.
    2.我试过了,没有关闭连接,还是建不起来:即没有提示出错,也看不到临时表.
    3.楼上的老兄看来对sqlserver研究的很透测,能否给答案先???
      

  2.   

    >>带有两个#的,只要sqlserver不重启,它就会存在
    这就错了#建立在当前数据库,你要用select * from [当前数据库]..sysobjects where xtype='u'才能看到
    ##建立在tempdb数据库,你要用select * from tempdb..sysobjects where xtype='u'才能看到##表示其他对话也能访问的全局临时表,#只能在当前会话看到。
    无论是前者还是后者,只要访问临时表的对话结束,表就会消失你放心,我刚试验过,只要是关闭连接前,你就可以看到,比如你运行这个程序 DriverManager.registerDriver(new SQLServerDriver());
    Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://169.181.236.228;databaseName=licos2;selectMethod=cursor", "sa", "sa");
        Statement stmt = conn.createStatement();
        stmt.execute("Create table ##test([ttt] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL)");
    stmt.close();
    System.out.println("等待...看完数据库,敲回车键");
    System.in.read();
    conn.close();然后运行
    select * from tempdb..sysobjects where name like '%test'
    敲回车,再运行这个SQL
      

  3.   

    哦,终于知道了.谢谢 DanielYWoo(绿色毒汁) .!!