如何判断临时表是不是存在

都知道Sql Server数据库中表等对象都保存在sysobjects数据表中,而临时表呢?它被保存于tempdb这个数据库中,今天写了个存储过程,动态拼Sql语句,使用到了全局性的临时表,格式为“##TempTableName”。

  1. 动态的Sql语句:Select FieldsList into 【普通临时表】 from 。。。。
  2. Execute(Sql语句),这时普通的临时表在Execute中执行,执行后,临时表就被清除了。接下来不能再使用这个临时表。
  3. 所以使用全局性临时表,##TempTableName。
  4. 但是它需要通过程序进行删除,不会在Session结束的时候自动消失。在存储过程开始的时候就应该判断这个临时表是不是存在。因为它不存在于当前数据库的sysobjects中,需要如下的函数进行判断:if object_id('tempdb..##TempTableName') is not null ,普通临时表也这样判断是不是存在。
  5. 在存储过程的最后。还是执行一下删除 drop table ##TempTableName。
posted @ 2006-11-22 16:01  路人甲乙丙丁  阅读(715)  评论(0)    收藏  举报