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

StackOverflow https://stackoverflow.com/questions/2649

  •  08-06-2019
  •  | 
  •  

Pregunta

Cuando escribo un script T-SQL que planeo volver a ejecutar, muchas veces uso tablas temporales para almacenar datos temporales.Dado que la tabla temporal se crea sobre la marcha, me gustaría poder eliminar esa tabla solo si existe (antes de crearla).

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

¿Fue útil?

Solución

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END

Otros consejos

La función OBJECT_ID devuelve la identificación del objeto interno para el nombre y tipo de objeto dado.'tempdb..#t1' se refiere a la tabla #t1 en la base de datos tempdb.'U' es para 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)
)
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top