Ricerca…


introduzione

La parola chiave Drop può essere utilizzata con vari oggetti SQL, questo argomento fornisce esempi rapidi di utilizzo diverso con gli oggetti del database.

Osservazioni

Collegamenti a MSDN.

Drop tables

Il comando DROP TABLE rimuove le definizioni di tabella e tutti i dati, gli indici, i trigger, i vincoli e le autorizzazioni correlate.

Prima di rilasciare una tabella, è necessario verificare se esistono oggetti (viste, stored procedure, altre tabelle) che fanno riferimento alla tabella.

Non è possibile eliminare una tabella referenziata da un'altra tabella da FOREIGN KEY. È necessario innanzitutto eliminare la chiave esterna facendone riferimento.

È possibile rilasciare una tabella a cui fa riferimento una vista o una stored procedure, ma dopo aver rilasciato la tabella, la vista o la stored procedure non è più utilizzabile.

La sintassi

DROP TABLE [ IF EXISTS ] [ database_name . [ schema_name ] . | schema_name . ]
table_name [ ,...n ] [ ; ]
  • IF EXISTS : rilasciare la tabella solo se esiste
  • database_name : specifica il nome del database in cui è contenuta la tabella
  • schema_name : specificare il nome dello schema in cui si trova la tabella
  • table_name : specifica il nome della tabella da eliminare

Esempi

Rimuovere la tabella con il nome TABLE_1 dal database corrente e il dbo dello schema predefinito

DROP TABLE Table_1;

Rimuovere la tabella con TABLE_1 dal database HR e il dbo dello schema predefinito

DROP TABLE HR.Table_1;

Rimuovere la tabella con TABLE_1 dal database HR e schema esterno

DROP TABLE HR.external.TABLE_1;

Drop Database

Il comando DROP DATABASE rimuove un catalogo di database, indipendentemente dal suo stato (non in linea, di sola lettura, sospetto, ecc.), Dall'istanza di SQL Server corrente.

Non è possibile eliminare un database se vi sono associati snapshot del database, poiché è necessario eliminare prima le istantanee del database.

Un drop di database rimuove tutti i file del disco fisico (a meno che non sia offline) utilizzati dal database a meno che non si utilizzi la stored procedure "sp_detach_db".

Una caduta di istantanee del database elimina lo snapshot dall'istanza di SQL Server ed elimina i file fisici utilizzati anche da esso.

Un database abbandonato può essere ricreato solo ripristinando un backup (non da uno snapshot del database).

La sintassi

DROP DATABASE [ IF EXISTS ] { database_name | database_snapshot_name } [ ,...n ] [;]  
  • IF EXISTS : rilasciare la tabella solo se esiste
  • database_name : specifica il nome del database da eliminare
  • database_snapshot_name : specifica lo snapshot del database da rimuovere

Esempi

Rimuovere un singolo database;

DROP DATABASE Database1;

Rimozione di più database

DROP DATABASE Database1, Database2;

Rimozione di un'istantanea

DROP DATABASE Database1_snapshot17;

Rimozione se il database esiste

DROP DATABASE IF EXISTS Database1;

Elimina tabelle temporanee

Nel server SQL abbiamo 2 tipi di tabelle temporanee:

  1. ##GlobalTempTable è un tipo di tabella temporanea che viene spostato tra tutte le sessioni dell'utente.
  2. #LocalTempTable temporanea #LocalTempTable - è un tipo di tabella temporanea che esiste solo nell'ambito corrente (solo nel processo effettivo - puoi ottenere l'id del tuo processo corrente da SELECT @@SPID )

Il processo di rilascio delle tabelle temporanee è lo stesso della tabella normale:

DROP TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name   

PRIMA di SQL Server 2016:

IF(OBJECT_ID('tempdb..#TempTable') is not null)
    DROP TABLE #TempTable;

SQL Server 2016:

DROP TABLE IF EXISTS #TempTable


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow