Deleting All Rows by Using TRUNCATE TABLE
Instrukcja OBCINANIA tabela jest szybkie i efektywne metoda usuwania wszystkich wierszy w tabela.PRZYCINANIE tabela jest podobna do instrukcja DELETE bez klauzula WHERE.PRZYCINANIE tabela jest szybsza i wykorzystująca mniejszą ilość zasobów dziennika systemu i transakcji.
W porównaniu z instrukcja DELETE OBCINANIA tabela ma następujące zalety:
Używany jest mniej miejsca dziennik transakcji.
Instrukcja DELETE Usuwa wiersze jednej na raz i rejestruje wpis dziennik transakcji dla każdego usuniętego wiersza.PRZYCINANIE tabela usuwa dane przez cofanie przydziału strona danych używane do przechowywania danych tabela i rejestruje tylko deallocations strona dziennik transakcji.
Mniejsza liczba blokad są zazwyczaj używane.
Gdy Instrukcja DELETE jest wykonywane przy użyciu blokada wiersza, każdy wiersz w tabela jest zablokowany do usunięcia.PRZYCINANIE tabela blokuje zawsze tabela i strona, ale nie każdy wiersz.
Bez wyjątku zero strony są pozostawiane w tabela.
Po wykonaniu instrukcja DELETE, tabela może nadal zawiera puste strony.Na przykład pustych stron w sterty nie może być dealokowane bez co najmniej taką wyłączności (LCK_M_X) blokada tabela.Jeżeli operacja usuwania nie korzysta z blokada tabela, w tabela (sterty) będzie zawierać liczbę pustych stron.Dla indeksów operacja usuwania można pozostawić puste strony w tle, mimo że strony te będą dealokowane szybko przez proces oczyszczania tła.
Zgodnie z DELETE, opróżnione definicji tabeli, przy użyciu OBCIĘTA, tabela pozostaje w bazie danych, łącznie z jej indeksów i inne skojarzone obiekty.Jeśli tabela zawiera kolumna tożsamości, licznik dla tej kolumny jest ustawiony na wartość początkową, który jest zdefiniowany dla tej kolumny.Jeśli siewnego nie został zdefiniowany, używana jest wartość domyślna 1.Aby zachować licznika tożsamości, należy użyć DELETE.
Obcinanie dużych tabel
Microsoft SQL Server wprowadzono możliwość upuszczeniu lub obcinania tabele, które mają więcej niż 128 zakresy bez posiadania blokad jednocześnie na wszystkie zakresy wymaganych do listy rozwijanej.Aby uzyskać więcej informacji zobaczDropping and Rebuilding Large Objects.
Przykłady
The following example removes all data from the JobCandidate table.SELECT statements are included before and after the TRUNCATE TABLE statement to compare results.