Для SQL Server до 2008 версии я пользовался следующей процедурой:
USE ИмяБазы
BACKUP LOG ИмяБазы WITH TRUNCATE_ONLY
DBCC SHRINKFILE( ИмяФайлаЛога, ЖелаемыйРазмер )
С SQL Server 2008 этот метод не работает, поэтому следует использоват другую процедуру:
USE ИмяБазы
ALTER DATABASE ИмяБазы SET RECOVERY SIMPLE
DBCC SHRINKFILE (ИмяФайлаЛога, ЖелаемыйРазмер);
ALTER DATABASE ИмяБазы SET RECOVERY FULL
Если хотите забыть про мониторинг за размером лога и периодическое его обрезание - помогут Maintenance plan-ы (настравивается за 2 минуты):
- в план последовательно добавляются операции Shrink и Backup;
- он настраивается на периодическое исполнение (можно даже уведомления по почте сделать при желании);
- можно указать в качестве target ВСЕ базы данных на сервере - удобство в том, что при добавлении новой она автоматически добавляется в Maintenance plan;