ИЗТРИВАНЕ
- DELETE е DML команда.
- Инструкцията DELETE се изпълнява с помощта на заключване на ред, всеки ред в таблицата е заключен за изтриване.
- Можем да посочим филтри в клаузата where
- Изтрива определени данни, ако съществува условие.
- Изтриването активира тригер, тъй като операцията се записва индивидуално.
- По-бавно от съкращаването, защото поддържа регистрационни файлове.
- Връщане назад е възможно.
ОТРЯЗВАНЕ
- TRUNCATE е DDL команда.
- TRUNCATE TABLE винаги заключва таблицата и страницата, но не и всеки ред.
- Не може да се използва условие Where.
- Премахва всички данни.
- TRUNCATE TABLE не може да активира тригер, тъй като операцията не регистрира отделни изтривания на редове.
- По-бързо по отношение на производителността, защото не поддържа никакви регистрационни файлове.
- Връщане назад е възможно.
- И двата DELETE и TRUNCATE могат да бъдат върнати, когато се използват с TRANSACTION (TRUNCATE може да бъде върнат обратно в SQL Server, но не и в MySQL).
- ако има PK с автоматично нарастване, отрязването ще нулира брояча
http://beginner-sql-tutorial.com/sql-delete-statement .htm