Ist es richtig, Folgendes zu tun?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
Nein. Dadurch wird die Tabelle nur gelöscht, wenn sie Zeilen enthält (und es wird ein Fehler ausgegeben, wenn die Tabelle nicht existiert).
Stattdessen können Sie für einen festen Tisch verwenden
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
Oder für eine temporäre Tabelle, die Sie verwenden können
IF OBJECT_ID('tempdb.dbo.#TempTableName', 'U') IS NOT NULL
DROP TABLE #TempTableName;
SQL Server 2016+ hat einen besseren Weg, indem er DROP TABLE IF EXISTS …
verwendet . Siehe die Antwort von @Jovan.