1. ホーム
  2. sql-server

[解決済み] テーブルが存在する場合、それを削除するにはどうすればよいですか?

2022-03-20 21:07:58

質問

テーブル名は Scores .

次のようにすればよいのでしょうか。

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

解決方法は?

<ブロッククオート

次のようにすればよいでしょうか。

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の回答 .