Sök…


Introduktion

Drop-nyckelordet kan användas med olika SQL-objekt, det här ämnet ger snabba exempel på olika användning med databasobjekt.

Anmärkningar

Länkar till MSDN.

Släpp tabeller

Kommandot DROP TABLE tar bort tabelldefinitionerna och all data, index, triggers, begränsningar och relaterade behörigheter.

Innan du släpper en tabell bör du kontrollera om det finns några objekt (vyer, lagrade procedurer, andra tabeller) som hänvisar till tabellen.

Du kan inte släppa en tabell som hänvisas till av en annan tabell av FOREIGN KEY. Du måste först släppa den utländska nyckeln som refererar till den.

Du kan släppa en tabell som refereras till av en vy eller lagrad procedur, men efter att tabellen har tappats kan vyn eller den lagrade proceduren inte längre användas.

Syntaxen

DROP TABLE [ IF EXISTS ] [ database_name . [ schema_name ] . | schema_name . ]
table_name [ ,...n ] [ ; ]
  • IF EXISTS - Släpp bara tabellen om det finns
  • database_name - Ange namnet på databasen där tabellen finns
  • schema_name - Ange namnet på det schema där tabellen är under
  • table_name - Ange namnet på tabellen som ska släppas

exempel

Ta bort tabellen med namnet TABLE_1 från aktuell databas och standardschema dbo

DROP TABLE Table_1;

Ta bort tabellen med TABLE_1 från databas HR och standardschema dbo

DROP TABLE HR.Table_1;

Ta bort tabellen med TABLE_1 från databas HR och schema externt

DROP TABLE HR.external.TABLE_1;

Släpp databaser

Kommandot DROP DATABASE tar bort en databaskatalog, oavsett status (offline, skrivskyddad, misstänkt, etc.), från den aktuella SQL Server-instansen.

En databas kan inte släppas om det finns några databasbildbilder associerade med den, eftersom databasbilderna måste släppas först.

En databassläpp tar bort alla fysiska diskfiler (såvida den inte är offline) som används av databasen om du inte använder den lagrade proceduren 'sp_detach_db'.

En databas-snapshot-drop tar bort stillbilden från SQL Server-instansen och raderar de fysiska filerna som också används av den.

En tappad databas kan bara skapas igen genom att återställa en säkerhetskopia (inte heller från en databasbild).

Syntaxen

DROP DATABASE [ IF EXISTS ] { database_name | database_snapshot_name } [ ,...n ] [;]  
  • IF EXISTS - Släpp bara tabellen om det finns
  • database_name - Anger namnet på databasen som ska släppas
  • database_snapshot_name - Anger vilken databasbild som ska tas bort

exempel

Ta bort en enda databas;

DROP DATABASE Database1;

Ta bort flera databaser

DROP DATABASE Database1, Database2;

Ta bort en stillbild

DROP DATABASE Database1_snapshot17;

Ta bort om databasen finns

DROP DATABASE IF EXISTS Database1;

Släpp tillfälliga tabeller

I SQL-server har vi två typer av tillfälliga tabeller:

  1. ##GlobalTempTable är en typ av tillfällig tabell som delas mellan alla användares sessioner.
  2. #LocalTempTable - det är en typ av temporär tabell som bara finns i nuvarande omfattning (endast i faktisk process - du kan få id för din nuvarande process av SELECT @@SPID )

Släppprocessen för temporära tabeller är densamma som för normal tabell:

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

FÖR 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow