Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak usunąć tabelę, jeśli istnieje?

Czy prawidłowe jest wykonanie następujących czynności?

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

Nie. Spowoduje to usunięcie tabeli tylko wtedy, gdy zawiera ona jakiekolwiek wiersze (i zgłosi błąd, jeśli tabela nie istnieje).

Zamiast tego możesz użyć stałego stołu

IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL 
  DROP TABLE dbo.Scores; 

Lub dla tabeli tymczasowej, której możesz użyć

IF OBJECT_ID('tempdb.dbo.#TempTableName', 'U') IS NOT NULL
  DROP TABLE #TempTableName; 

SQL Server 2016+ ma lepszy sposób, używając DROP TABLE IF EXISTS … . Zobacz odpowiedź @Jovan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utwórz tabelę w SQL Server 2017

  2. Jak przekazać listę jako parametr w procedurze składowanej?

  3. Wydajność zmiennych tabel w SQL Server

  4. Czy w Microsoft SQL Server istnieje typ danych logicznych, taki jak w MySQL?

  5. Utwórz zapytanie w SQL Server 2017