Delete w SQL Server – Usuwanie rekordów

Jak usunąć rekordy z tabeli w SQL Server?

Delete w SQL Server jest kolejnym poleceniem DML, obok Update i Insert które poznasz w kursie. Delete służy do usuwania rekordów z tabeli. Możesz usuwać zarówno wszystkie rekordy, jak i tylko wybrane. Składnia polecenia Delete wygląda następująco:

DELETE 
   [ FROM ] nazwa_tabeli
   [ WHERE < warunki > ]

Zróbmy krótki przykład użycia Delete w SQL Server. Potrzebna nam będzie do tego przykładowa tabela z danymi, która możemy szybko utworzyć tym skryptem np na bazie AdventureWorks:

Create table TABELA_DO_DELETE
(
ID bigint ,
FULL_NAME varchar(100),
CITY varchar(50),
INSERT_DATE datetime default getdate()
);
go

INSERT INTO TABELA_DO_DELETE 
values (1, 'Adam Małysz', 'Warszawa', '20170714');
INSERT INTO TABELA_DO_DELETE 
values (2, 'Robert Kubica', 'Monaco', '20170715');
INSERT INTO TABELA_DO_DELETE 
values (3, 'Adam Małysz', 'Nowy Jork', '20170716');
INSERT INTO TABELA_DO_DELETE 
values (4, 'Adam Kowalski', 'Warszawa', getdate());
go

select * from TABELA_DO_DELETE;
go

Jeśli chcesz usunąć wszystkie rekordy z tabeli zastosuj polecenie, które wyczyści wszystkie dane, a więc:

Delete from TABELA_DO_DELETE;
--lub
Delete TABELA_DO_DELETE;

Jeśli chcesz usunąć tylko wybrane rekordy, wpisz warunek w klauzuli WHERE, ograniczając część danych w tabeli, które chcesz usunąć:

Delete from TABELA_DO_DELETE
where id = 1;

Do usuwania rekordów w tabeli służy także poleceni Truncate Table. W poleceniu Truncate nie możemy już wprowadzić warunku WHERE. Polecenie jest o wiele szybsze od Delete. Usuwa wszystkie dane z wybranej tabeli. Jakie są inne różnice pomiędzy Truncate i Delete w SQL Server? Truncate służy do resetowania tabeli. Nie tylko kasuje dane. Usuwa także klucze Identity z całej tabeli. Przykład użycia Truncate zamieszczam poniżej:

Truncate Table TABELA_DO_DELETE;
Truncate i Delete w SQL Server
Truncate i Delete w SQL Server

Strona producenta programu opisująca zagadnienie delete.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *