sql >> Databasteknik >  >> RDS >> Sqlserver

Hur släpper man en tabell om den finns?

Är det korrekt att göra följande?

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

Nej. Det kommer bara att ta bort tabellen om den innehåller några rader (och kommer att ge upp ett fel om tabellen inte finns).

Istället kan du använda ett permanent bord

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

Eller för en tillfällig tabell kan du använda

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

SQL Server 2016+ har ett bättre sätt att använda DROP TABLE IF EXISTS … . Se svaret av @Jovan.



  1. mySQL-fel 1040:För många anslutningar

  2. Hur tar man bort accenter och alla tecken <> a..z i sql-server?

  3. Försöker få tillgång till icke-objekt - CodeIgniter

  4. Alternativa Oracle-drivrutiner för .net