use 資料庫名稱
Backup Log 資料庫名稱 with Truncate_only
DBCC ShrinkDataBase (資料庫名稱) --壓縮資料檔 --> *.mdf
DBCC ShrinkFile (資料庫名稱_log) --壓縮交易紀錄檔 --> *.ldf
http://charlesbc.blogspot.tw/2011/01/sql-server-log.html
SQL Server 2008
到了 SQL Server 2008,Trancate_only 的指令正式被取消了。由於資料庫的復原模式為簡單的情形下是不記錄所有的 log資料的。我們可以利用這一點清除 log 資料。因此,替代的方法,是將資料庫的復原模式先換成簡單模式,再調整為完整。指令如下
use master
go
--備份目前的 log
backup log DatabaseName to disk='c:\db.log' WITH NOFORMAT
--將資料庫復原模式切換到簡單模式
ALTER DATABASE DatabaseName SET RECOVERY SIMPLE WITH NO_WAIT
--找到 DatabaseNameLog 的值
use DatabaseName
go
select name from sys.database_files
where type_desc = 'log'
--縮減 log file 到 1MB
DBCC SHRINKFILE(DatabaseNameLog, 1)
--將資料庫復原模式切換到完整模式
USE [master]
GO
ALTER DATABASE [DatabaseName] SET RECOVERY FULL WITH NO_WAIT