首页 | 登录 | 注册 | 会员中心 | 网站地图
 当前位置:首页 >> 网管 >> 数据库 >> SQL Server >> 删除sql server大容量日志的方法
删除sql server大容量日志的方法
来源:博客园 作者: 发布时间:2008-07-28

  --后面的步骤有一定危险,你可以可以选择是否应该这些步骤

  --5.分离数据库

if @bkdatabase=1
  begin
  if isnull(@bkfname,')='
  set @bkfname=@dbname+'_'+convert(varchar,getdate(),112)
  +replace(convert(varchar,getdate(),108),':',')
  select 提示信息='备份数据库到SQL 默认备份目录,备份文件名:'+@bkfname
  exec('backup database ['+@dbname+'] to disk=''+@bkfname+'')
  end

  --进行分离处理

create table #t(fname nvarchar(260),type int)
  exec('insert into #t select filename,type=status&0x40 from ['+@dbname+']..sysfiles')
  exec('sp_detach_db ''+@dbname+'')
  --删除日志文件
  declare @fname nvarchar(260),@s varchar(8000)
  declare tb cursor local for select fname from #t where type=64
  open tb
  fetch next from tb into @fname
  while @@fetch_status=0
  begin
  set @s='del "'+rtrim(@fname)+'"'
  exec master..xp_cmdshell @s,no_output
  fetch next from tb into @fname
  end
  close tb
  deallocate tb

  --附加数据库

set @s='
  declare tb cursor local for select fname from #t where type=0
  open tb
  fetch next from tb into @fname
  while @@fetch_status=0
  begin
  set @s=@s+',''+rtrim(@fname)+''
  fetch next from tb into @fname
  end
  close tb
  deallocate tb
  exec('sp_attach_single_file_db ''+@dbname+''+@s)
  go

(责任编辑:IORI)
阅读次数:
共3页: 上一页 [1] [2] 3 下一页
快速检索
网友评论
评论加载中…
 
友情链接 | 欢迎投稿 | 杂志发行 | 广告报价 | 人才招聘 | 服务条款 | 免责声明 | 隐私保护 | 关于网管员世界
CopyRight © 2001-2008 [网管员世界 www.365master.com] All Rights Reserved.
《网管员世界》杂志,专为网管服务的刊物!