Polecenie DBCC CHECKTABLE ('klienci') w MS SQL Server
Poprawna jest odpowiedź, że polecenie sprawdzi spójność stron i struktur tabeli klienci. DBCC CHECKTABLE kontroluje integralność jednej tabeli (albo widoku indeksowanego): strony danych, powiązania wierszy i wszystkie jej indeksy. Wynik to raport z ewentualnymi błędami spójności. Bez dodatkowej opcji naprawy polecenie niczego nie zmienia w danych.
Do zapamiętania: DBCC CHECKTABLE - jedna tabela, DBCC CHECKDB - cała baza (wewnętrznie wykonuje CHECKTABLE dla każdej tabeli). Naprawę włącza się opcją, np. DBCC CHECKTABLE ('klienci', REPAIR_REBUILD), przy bazie w trybie jednego użytkownika. W MySQL podobną rolę pełni CHECK TABLE klienci;. Regularne uruchamianie kontroli spójności pozwala wykryć uszkodzenia, zanim trafią do kopii zapasowych.
Najczęstszy błąd to pomylenie CHECKTABLE z CHECKDB. Sprawdzenie wszystkich tabel bazy danych wykonuje DBCC CHECKDB, a polecenie z pytania przyjmuje nazwę jednej tabeli i tylko ją kontroluje. Kopia bezpieczeństwa to zupełnie inna operacja - w MS SQL Server tworzy się ją poleceniem BACKUP DATABASE i nie dotyczy ona pojedynczej tabeli, a całej bazy, pliku lub dziennika transakcji.
Usuwanie uszkodzonych rekordów też nie następuje: bez opcji naprawy CHECKTABLE tylko raportuje problemy. Nawet z opcją REPAIR_ALLOW_DATA_LOSS serwer nie kasuje po prostu „wszystkich uszkodzonych rekordów”, lecz próbuje naprawić strukturę, a utrata danych jest skutkiem ubocznym, dlatego tej opcji używa się w ostateczności. Nazwy poleceń DBCC dobrze opisują ich zakres: CHECK + TABLE to sprawdzenie tabeli, CHECK + DB - bazy. Najbezpieczniejszą drogą przy wykrytych uszkodzeniach pozostaje odtworzenie danych z poprawnej kopii zapasowej.