次のことを行うのは正しいですか?
IF EXISTS(SELECT * FROM dbo.Scores) DROP TABLE dbo.Scores
いいえ。 これにより、テーブルに行が含まれている場合にのみテーブルが削除されます(テーブルが存在しない場合はエラーが発生します)。
代わりに、永続的なテーブルに使用できます
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
または、一時テーブルに使用できます
IF OBJECT_ID('tempdb.dbo.#TempTableName', 'U') IS NOT NULL
DROP TABLE #TempTableName;
SQL Server 2016+には、DROP TABLE IF EXISTS …
を使用するより良い方法があります。 。 @Jovanによる回答を参照してください。