SQL Server で「トランザクション ログがいっぱいになっています。」エラーへの対応。

https://blog.teapla.net/2009/12/3554/
復旧モデルが「完全」だとトランザクションログがどこまでも肥大化する。
ちゃんとした対応方法は定期的にバックアップを取ってログが自動的に切り捨てられるようにすることだが、取り急ぎログを縮小する方法は以下。
1. ログのバックアップ (この段階ではログファイルは縮小されない)。
2. SHRINKFILEストアドで、ログの縮小。

USE <DB名>
SELECT * FROM sys.database_files -- でログの論理名を取得

BACKUP LOG <DB名> TO DISK = 'nul'
GO

DBCC SHRINKFILE(<ログの論理名>)
GO

、<ログの論理名>は文字列ではなく直接名前を書けばいい
ログファイルが小さくならない場合は、ログの中身はほとんど空いているがファイル末尾に何かが記録されておりそれ以降の内容を切り捨てできない状態かもしれない。
その場合、何でもいいのでselectなどを実行して空いているファイルの頭のほうにログを記録した上で、もう一度上のコマンドを実行することでログファイルを小さくすることが出来る場合がある。
https://social.msdn.microsoft.com/Forums/aspnet/ja-JP/9cb5e992-55e6-4c77-9aed-c3a1064a8f5a/12488125211253112470124631247112519125311252512464123641228920?forum=sqlserverja
https://docs.microsoft.com/ja-jp/previous-versions/sql/sql-server-2008-r2/ms179355(v=sql.105)