テーブルが存在する場合、それを削除するにはどうすればよいですか? 質問する

テーブルが存在する場合、それを削除するにはどうすればよいですか? 質問する

テーブル名は ですScores

次のようにするのは正しいでしょうか?

IF EXISTS(SELECT *
          FROM   dbo.Scores)
  DROP TABLE dbo.Scores

ベストアンサー1

次のようにするのは正しいでしょうか?

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による回答

おすすめ記事