Guest User

Untitled

a guest
Feb 20th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. /*
  2. * Blame: Michael Hudson <mike.hudson at gmail>
  3. * Iterates through SQL databases and truncates log files.
  4. * You're crazy if you run this in production. It's for
  5. * dev environments without much free disk space.
  6. */
  7. DECLARE @dbname VARCHAR(MAX)
  8. DECLARE @dbid INT
  9.  
  10. DECLARE db_cursor CURSOR FOR
  11. SELECT [name], [dbid]
  12. FROM master..sysdatabases
  13. WHERE (NOT ([status] & 512) > 0) --512 = db offline
  14.  
  15. OPEN db_cursor
  16.  
  17. FETCH NEXT FROM db_cursor
  18. INTO @dbname, @dbid
  19.  
  20. WHILE @@FETCH_STATUS = 0
  21. BEGIN
  22.  
  23. DECLARE @tmp VARCHAR(MAX)
  24.  
  25. 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
  26. PRINT @tmp
  27. EXEC(@tmp)
  28.  
  29. -- Get the next vendor.
  30. FETCH NEXT FROM db_cursor
  31. INTO @dbname, @dbid
  32. END
  33. CLOSE db_cursor
  34. DEALLOCATE db_cursor
Add Comment
Please, Sign In to add comment