tags:

views:

337

answers:

3

When writing a T-SQL script that I plan on re-running, often times I use temporary tables to store temporary data. Since the temp table is created on the fly, I'd like to be able to drop that table only if it exists (before I create it).

I'll post the method that I use, but I'd like to see if there is a better way.

+3  A: 

The OBJECT_ID function returns the internal object id for the given object name and type. 'tempdb..#t1' refers to the table #t1 in the tempdb database. 'U' is for user-defined table.

IF OBJECT_ID('tempdb..#t1', 'U') IS NOT NULL
  DROP TABLE #t1

CREATE TABLE #t1(
  id INT IDENTITY(1,1),
  msg VARCHAR(255)
)
Nathan Bedford
+5  A: 
                    If Object_Id('TempDB..#TempTable') Is Not Null
Begin
Drop Table #TempTable
End
GateKiller
A: 
Select name From sysobjects Where type='U' and name = 'TempTable'
Keith Maurino
Keith, it looks like that query will find normal user tables, but not temporary tables.
Nathan Bedford