sql >> データベース >  >> RDS >> Sqlserver

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

    次のことを行うのは正しいですか?

    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による回答を参照してください。



    1. 2020MVPサミットに関する専門家の見解にアクセスする

    2. 「Intelのデフォルトプレフィックス(/ usr / local)のARMプロセッサのHomebrewにインストールできません!」を修正しました。

    3. PostgreSQLクロス集計クエリ

    4. データベース駆動型Webサイトについて知っておくべきこと