sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo eliminar una tabla si existe?

¿Es correcto hacer lo siguiente?

IF EXISTS(SELECT *
          FROM   dbo.Scores)
  DROP TABLE dbo.Scores

No. Eso eliminará la tabla solo si contiene filas (y generará un error si la tabla no existe).

En cambio, para una tabla permanente puede usar

IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL 
  DROP TABLE dbo.Scores; 

O, para una tabla temporal, puede usar

IF OBJECT_ID('tempdb.dbo.#TempTableName', 'U') IS NOT NULL
  DROP TABLE #TempTableName; 

SQL Server 2016+ tiene una mejor manera, usando DROP TABLE IF EXISTS … . Ver la respuesta de @Jovan.