É correto fazer o seguinte?
IF EXISTS(SELECT * FROM dbo.Scores) DROP TABLE dbo.Scores
Não. Isso eliminará a tabela apenas se ela contiver alguma linha (e gerará um erro se a tabela não existir).
Em vez disso, para uma tabela permanente, você pode usar
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
Ou, para uma tabela temporária, você pode usar
IF OBJECT_ID('tempdb.dbo.#TempTableName', 'U') IS NOT NULL
DROP TABLE #TempTableName;
O SQL Server 2016+ tem uma maneira melhor, usando
DROP TABLE IF EXISTS …
. Veja a resposta de @Jovan.