存贮过程中创建的临时表,必须用代码删除吗?做为输出的表也要删除吗?
在存贮过程中要进行复杂的查询与运算,所以要生成很多临时表:#tablename,用于进行连接等操作.
最后通过一个临时表返回结果,也就是说返回给前台调用的 ado recordset 记录集.比如最后一句是:
select * from #tablereturn
我想问的是在存贮过程的最后有必要用代码清除所有创建的临时表吗,比如:
truncate table #table1
truncate table #table2
...
好象按理说存贮过程中的临时表存活期只在存贮过程中,可是看到资料说应该手工代码删除

解决方案 »

  1.   

    关于临时表的问题,如果是用一个#创建的话,那么对于每个连接来说,这个表都是独有的.换句话说,可以有两个连接,则这两个连接都可以创建名字为#Temp的临时表~而对于SP,在调用SP执行完成后,系统会自动删除这个临时表.因此不用担心这个问题.
      

  2.   

    据我理解如果不删除,数据库的temp文件会很大,而且如果本身数据库就是很大的话,很容易在空间不足时无法写入数据库。这时好像只有重启才可以。
      

  3.   

    具体可参照BOL里Create Table里面的说明...
    里面说的相当详细!