開発環境なんかでいつの間にかトランザクションログが巨大化してることがよくあります。

ちょっと前だと

1
BACKUP LOG [db_name] WITH TRUNCATE_ONLY

でシュリンクしてくれたんですが、最近のSQLServerだと

‘TRUNCATE_ONLY’ is not a recognized BACKUP option.

とか怒られます。

やり方毎回忘れるのでメモ。

1
2
3
4
5
6
USE [db_name]
GO
BACKUP DATABASE [db_name] TO DISK = N'NUL'   --これも要る
BACKUP LOG [db_name] TO DISK = N'NUL'
DBCC SHRINKFILE (N'db_name_Log' , 0)
GO

db_name_Logは

1
SELECT * FROM sys.database_files

のnameフィールドの値

TRUNCATE_ONLY廃止は、切り捨てないでちゃんとバックアップしろよ!って事なんでしょうけど、開発環境では使えた方が便利だと思う。