Ta bort data
Precis som INSERT-instruktionen alltid lägger till hela rader i en tabell tar DELETE-instruktionen alltid bort hela rader.
Använd DELETE för att ta bort specifika rader
DELETE fungerar på en uppsättning rader, antingen definierat av ett villkor i en WHERE-sats eller definierat i en koppling. WHERE-satsen i en DELETE-instruktion har samma struktur som en WHERE-sats i en SELECT-instruktion.
Kommentar
Det är viktigt att komma ihåg att en DELETE utan motsvarande WHERE-sats tar bort alla rader från en tabell. Använd DELETE-instruktionen med försiktighet.
Följande kod visar den grundläggande syntaxen för DELETE-instruktionen:
DELETE [FROM] <TableName>
WHERE <search_conditions>;
I följande exempel används DELETE-instruktionen för att ta bort alla produkter från den angivna tabellen som har upphört. Det finns en kolumn i tabellen med namnet avbruten och för produkter som inte längre är tillgängliga har kolumnen värdet 1.
DELETE FROM Production.Product
WHERE discontinued = 1;
Använd TRUNCATE TABLE för att ta bort alla rader
DELETE utan EN WHERE-sats tar bort alla rader från en tabell. Därför används DELETE vanligtvis villkorligt med ett filter i WHERE-satsen. Om du verkligen vill ta bort alla rader och lämna en tom tabell kan du använda TRUNCATE TABLE-instruktionen. Den här instruktionen tillåter inte en WHERE-sats och tar alltid bort alla rader i en åtgärd. Här är ett exempel:
TRUNCATE TABLE Sales.Sample;
TRUNCATE TABLE är effektivare än DELETE när du vill ta bort alla rader.