Er det korrekt at gøre følgende?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
Nej. Det vil kun slette tabellen, hvis den indeholder rækker (og vil give en fejl, hvis tabellen ikke eksisterer).
I stedet kan du bruge et permanent bord
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
Eller til en midlertidig tabel kan du bruge
IF OBJECT_ID('tempdb.dbo.#TempTableName', 'U') IS NOT NULL
DROP TABLE #TempTableName;
SQL Server 2016+ har en bedre måde ved at bruge DROP TABLE IF EXISTS …
. Se svaret af @Jovan.