Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Blame: Michael Hudson <mike.hudson at gmail>
- * Iterates through SQL databases and truncates log files.
- * You're crazy if you run this in production. It's for
- * dev environments without much free disk space.
- */
- DECLARE @dbname VARCHAR(MAX)
- DECLARE @dbid INT
- DECLARE db_cursor CURSOR FOR
- SELECT [name], [dbid]
- FROM master..sysdatabases
- WHERE (NOT ([status] & 512) > 0) --512 = db offline
- OPEN db_cursor
- FETCH NEXT FROM db_cursor
- INTO @dbname, @dbid
- WHILE @@FETCH_STATUS = 0
- BEGIN
- DECLARE @tmp VARCHAR(MAX)
- SELECT TOP 1 @tmp='USE [' + @dbname + ']; BACKUP LOG [' + @dbname + '] WITH TRUNCATE_ONLY; DBCC SHRINKFILE ([' + [name] + ']);' FROM sys.master_files WHERE database_id = @dbid AND type=1
- PRINT @tmp
- EXEC(@tmp)
- -- Get the next vendor.
- FETCH NEXT FROM db_cursor
- INTO @dbname, @dbid
- END
- CLOSE db_cursor
- DEALLOCATE db_cursor
Add Comment
Please, Sign In to add comment