Är det korrekt att göra följande?
IF EXISTS(SELECT * FROM dbo.Scores) DROP TABLE dbo.Scores
Nej. Det kommer bara att ta bort tabellen om den innehåller några rader (och kommer att ge upp ett fel om tabellen inte finns).
Istället kan du använda ett permanent bord
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
Eller för en tillfällig tabell kan du använda
IF OBJECT_ID('tempdb.dbo.#TempTableName', 'U') IS NOT NULL
DROP TABLE #TempTableName;
SQL Server 2016+ har ett bättre sätt att använda DROP TABLE IF EXISTS …
. Se svaret av @Jovan.