¿Es correcto hacer lo siguiente?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
No. Eso eliminará la tabla solo si contiene filas (y generará un error si la tabla no existe).
En cambio, para una tabla permanente puede usar
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
O, para una tabla temporal, puede usar
IF OBJECT_ID('tempdb.dbo.#TempTableName', 'U') IS NOT NULL
DROP TABLE #TempTableName;
SQL Server 2016+ tiene una mejor manera, usando DROP TABLE IF EXISTS …
. Ver la respuesta de @Jovan.