quinta-feira, 11 de agosto de 2011

Limpar Transaction Log no SQLServer 2008

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[function_clean_transaction_log]
AS
BEGIN
declare @dbstring varchar(300)
select @dbstring = DB_NAME()
declare @sql varchar(500)

print 'Iniciando Deleção do Transaction Log (2 steps)...'
set @sql = 'ALTER DATABASE ['+@dbstring+'] SET RECOVERY SIMPLE'
exec (@sql)
DBCC SHRINKDATABASE (@dbstring, NOTRUNCATE) -- 1st step
DBCC SHRINKDATABASE (@dbstring, TRUNCATEONLY) -- 2nd step
set @sql = 'ALTER DATABASE ['+@dbstring+'] SET RECOVERY FULL'
exec (@sql)
print 'Deleção do Transaction Log Terminada.'
END

Nenhum comentário: