¿Cuál es la mejor manera de determinar si existe una tabla temporal en SQL Server?

votos
18

Al escribir un script T-SQL que planeo volver a ejecutar, muchas veces utilizo tablas temporales para almacenar datos temporales. Como la tabla temporal se crea sobre la marcha, me gustaría poder soltar esa tabla solo si existe (antes de crearla).

Publicaré el método que uso, pero me gustaría ver si hay una mejor manera.

Publicado el 05/08/2008 a las 19:18
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
25

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
Respondida el 05/08/2008 a las 19:21
fuente por usuario

votos
14

La función OBJECT_ID devuelve el ID de objeto interno para el nombre y tipo de objeto dados. 'tempdb .. # t1' se refiere a la tabla # t1 en la base de datos tempdb. 'U' es para la tabla definida por el usuario.

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

CREATE TABLE #t1
(
  id INT IDENTITY(1,1),
  msg VARCHAR(255)
)
Respondida el 05/08/2008 a las 19:21
fuente por usuario

votos
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Respondida el 17/09/2008 a las 21:50
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more