Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment supprimer une table si elle existe ?

Est-il correct de faire ce qui suit ?

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

Non. Cela supprimera le tableau uniquement s'il contient des lignes (et générera une erreur si le tableau n'existe pas).

Au lieu de cela, pour une table permanente, vous pouvez utiliser

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

Ou, pour une table temporaire, vous pouvez utiliser

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

SQL Server 2016+ a un meilleur moyen, en utilisant DROP TABLE IF EXISTS … . Voir la réponse de @Jovan.