Comment supprimer une table si elle existe ?

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 ne supprimera la table que si elle contient des lignes (et générera une erreur si la table n’existe pas).

À la place, 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+ offre une meilleure façon, en utilisant DROP TABLE IF EXISTS .... Consultez la réponse de @Jovan.