Usuwanie danych
Podobnie jak instrukcja INSERT zawsze dodaje całe wiersze do tabeli, instrukcja DELETE zawsze usuwa całe wiersze.
Usuwanie określonych wierszy przy użyciu funkcji DELETE
Funkcja DELETE działa na zestawie wierszy zdefiniowanych przez warunek w klauzuli WHERE lub zdefiniowanych w sprzężeniu. Klauzula WHERE w instrukcji DELETE ma taką samą strukturę jak klauzula WHERE w instrukcji SELECT.
Uwaga
Należy pamiętać, że usunięcie bez odpowiedniej klauzuli WHERE spowoduje usunięcie wszystkich wierszy z tabeli. Użyj instrukcji DELETE z ostrożnością.
Poniższy kod przedstawia podstawową składnię instrukcji DELETE:
DELETE [FROM] <TableName>
WHERE <search_conditions>;
W poniższym przykładzie użyto instrukcji DELETE, aby usunąć wszystkie produkty z określonej tabeli, które zostały przerwane. W tabeli znajduje się kolumna o nazwie Nieobsługiwane i dla produktów, które nie są już dostępne, kolumna ma wartość 1.
DELETE FROM Production.Product
WHERE discontinued = 1;
Usuwanie wszystkich wierszy za pomocą narzędzia TRUNCATE TABLE
Funkcja DELETE bez klauzuli WHERE usuwa wszystkie wiersze z tabeli. Z tego powodu funkcja DELETE jest zwykle używana warunkowo z filtrem w klauzuli WHERE. Jeśli naprawdę chcesz usunąć wszystkie wiersze i pozostawić pustą tabelę, możesz użyć instrukcji TRUNCATE TABLE. Ta instrukcja nie zezwala na klauzulę WHERE i zawsze usuwa wszystkie wiersze w jednej operacji. Oto przykład:
TRUNCATE TABLE Sales.Sample;
FUNKCJA TRUNCATE TABLE jest wydajniejsza niż USUWANIE, jeśli chcesz usunąć wszystkie wiersze.