首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sqlserver2008 截断指定时间先前的事务日志的命令

2013-10-11 
sqlserver2008 截断指定时间以前的事务日志的命令。如题。 想每隔一个月截断上一个月的事务日志。如:3月底删

sqlserver2008 截断指定时间以前的事务日志的命令。
如题。 想每隔一个月截断上一个月的事务日志。
如:3月底删掉2月整个月的事务日志。
求截断指定时间以前的事务日志的方法。
[解决办法]
试试:

-- use the cursor to delete the expire bak

-- also could not user the cursor if you only want to delete the top 1 oldest bak

-- @filePath : the expire bak's path

declare fileCursor CURSOR for 

SELECT * from

(

SELECT TOP 3 b.physical_device_name    

FROM [msdb].[dbo].[backupset] a,[msdb].[dbo].[backupmediafamily] b  

where a.media_set_id=b.media_set_id  and [expiration_date]<GETDATE()

order by [expiration_date] asc



as filetable

declare @filePath varchar(100)  

open  fileCursor  

fetch next from fileCursor into @filePath  

while @@fetch_status=0  

begin  

declare @delCmd varchar(100)

set @delCmd =('del '+@filePath)

-- user xp_cmdshell to delete the bak

exec xp_cmdshell @delCmd

fetch next from fileCursor into @filePath 

end  

close fileCursor  

deallocate fileCursor

热点排行