Aquí podría ser tu PUBLICIDAD


¿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 Nathan Bedford
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 07:21
fuente por usuario GateKiller


Aquí podría ser tu PUBLICIDAD


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 07:21
fuente por usuario Nathan Bedford

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