mssql sqlserver 临时表删除的正确方法分享


摘要:
下文讲述数据库中临时表的正确删除方法,如下所示:
实验环境:sql server 2008 R2


临时表和普通的物理表在sqlserver中存储的位置不同,一个在自己的数据库下,一个存储在tempdb数据库下。
常见的错误清除临时表方法如下:
错误删除方法1:

     --因为临时表存储在tempdb数据库下,如果我们在当前数据库下删除临时表,将会发生一些不可逆转的错误现象
     IF  EXISTS (SELECT * FROM sysobjects WHERE object_id = OBJECT_ID(N'[dbo].[#tempTable]') AND type in (N'U'))
      begin
         DROP TABLE [dbo].[tempTable]    ---将会清除实际存在的物理表
      end
    

错误删除方法2:

     ----临时表在tempdb的表名已经发生变化,不可以采用这种判断方式操作
     if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'[#temptable]'))
    Begin
       drop table #temptable   
    End
    

正确删除临时表的方法:

    if object_id('tempdb..#tempTable') is not null
      begin
         drop table #tempTable
     end