Guest User

Untitled

a guest
Mar 22nd, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. -- PRC_CLEARLOG
  2. -- EXEC PRC_CLEARLOG
  3. -- CREATE
  4. ALTER PROCEDURE PRC_CLEARLOG AS
  5. BEGIN
  6. SET NOCOUNT ON
  7. DECLARE @banco table (nome varchar(256))
  8. -- {
  9. INSERT INTO @banco
  10. SELECT [name] FROM sys.databases
  11. WHERE recovery_model_desc = 'FULL' AND name NOT IN ('master', 'model', 'msdb', 'tempdb')
  12. -- }
  13. DECLARE @nomeBanco VARCHAR(256)
  14. WHILE(1=1)BEGIN
  15. SELECT TOP 1 @nomeBanco = [nome] FROM @banco
  16. IF(@nomeBanco IS NOT NULL)BEGIN
  17. DELETE FROM @banco WHERE [nome] = @nomeBanco
  18. DECLARE @sqlShirink VARCHAR(1024)
  19. SET @sqlShirink = 'USE ['+@nomeBanco+']
  20. ALTER DATABASE ['+@nomeBanco+'] SET RECOVERY SIMPLE
  21. DECLARE @logFile varchar(256)
  22. SELECT @logFile = name FROM sys.database_files WHERE type_desc = ''LOG''
  23. DBCC SHRINKFILE(@logFile, 2)
  24. '
  25. --- DEBUG {
  26. PRINT @sqlShirink
  27. SELECT @nomeBanco
  28. -- }
  29. BEGIN TRY
  30. EXEC(@sqlShirink)
  31. END TRY
  32. BEGIN CATCH
  33. PRINT '#ERROR ' + @nomeBanco
  34. IF(OBJECT_ID('tempdb..#erros') IS NULL)
  35. -- {
  36. SELECT @nomeBanco banco, ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState,
  37. ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage
  38. INTO #erros
  39. -- }
  40. ELSE
  41. -- {
  42. INSERT INTO #erros
  43. SELECT @nomeBanco banco, ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState,
  44. ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage
  45. -- }
  46. END CATCH
  47. SET @nomeBanco = NULL
  48. END -- IF
  49. ELSE BEGIN
  50. IF(OBJECT_ID('tempdb..#erros') IS NOT NULL)
  51. SELECT * FROM #erros
  52. BREAK
  53. END -- ELSE IF
  54. END -- WHILE
  55. END -- PROCEDURE
  56. GO
Add Comment
Please, Sign In to add comment