Я обнаружил ТАБЛИЦУ TRUNCATE в ссылке msdn transact-SQL. Для всех заинтересованных здесь есть замечания:
TRUNCATE TABLE функционально идентичен оператору DELETE без предложения WHERE: обе удаляют все строки в таблице. Но TRUNCATE TABLE быстрее и использует меньше ресурсов системных и транзакционных журналов, чем DELETE.
Оператор DELETE удаляет строки по одному и записывает запись в журнал транзакций для каждой удаленной строки. TRUNCATE TABLE удаляет данные, освобождая страницы данных, используемые для хранения данных таблицы, и в журнале транзакций записываются только дезадаптации страниц.
TRUNCATE TABLE удаляет все строки из таблицы, но структура таблицы и ее столбцы, ограничения, индексы и т. Д. Остаются. Счетчик, используемый идентификатором для новых строк, сбрасывается в семя для столбца. Если вы хотите сохранить счетчик идентификаторов, вместо этого используйте DELETE. Если вы хотите удалить определение таблицы и ее данные, используйте оператор DROP TABLE.
Вы не можете использовать TRUNCATE TABLE в таблице, на которую ссылается ограничение FOREIGN KEY; вместо этого используйте инструкцию DELETE без предложения WHERE. Поскольку TRUNCATE TABLE не регистрируется, он не может активировать триггер.
TRUNCATE TABLE не может использоваться для таблиц, участвующих в индексированном представлении.
TRUNCATE является самым быстрым, просто помните, что вы не сможете откатить данные в случае, если что-то произойдет. – 2008-09-15 15:50:52
Примечание о TRUNCATE. Если один из столбцов является столбцом IDENTITY, TRUNCATE сбрасывает SEED этого столбца на его начальное значение (указанное при определении таблицы). Поэтому в некотором смысле это похоже на начало новой таблицы. Я считаю это полезным для очистки данных перед повторным заполнением таблиц. – kristof 2008-09-23 16:53:09
Да, и в Oracle World мы называем это смещением водяных знаков, а не уверенными в других. – 2008-12-30 09:55:11