Shrink SQL Server Log Files

--sql server 2005

use SampleDB
GO

DECLARE @DBName NVARCHAR(100)
SET @DBName = DB_NAME()
EXEC('BACKUP LOG [' + @DBName + '] WITH TRUNCATE_ONLY')
GO

SELECT [id]=ROW_NUMBER() OVER (ORDER BY [file_id]), [name]
INTO #log_file_list
FROM sys.database_files
WHERE [type] = 1 --log file

DECLARE @ID INT, @LogFile NVARCHAR(1000)

WHILE EXISTS(SELECT * FROM #log_file_list)
BEGIN
 SELECT TOP 1 @ID = [id], @LogFile = [name]
 FROM #log_file_list

 SELECT log_file = @LogFile, size_before_shrink=[size]
 FROM sys.database_files WHERE [name] = @LogFile

 DBCC SHRINKFILE(@LogFile, TRUNCATEONLY)

 SELECT log_file=@LogFile, size_after_shrink=[size]
 FROM sys.database_files WHERE [name] = @LogFile

 DELETE FROM #log_file_list WHERE [id] = @ID
END

DROP TABLE #log_file_list

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值