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.