请选择 进入手机版 | 继续访问电脑版

开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 安装 BPM 控件
查看: 3349|回复: 0

批量删除 SQLServer 数据库日志文件

[复制链接]

40

主题

49

帖子

260

积分

超级版主

Rank: 8Rank: 8

积分
260
发表于 2016-5-27 20:07:34 | 显示全部楼层 |阅读模式
本帖最后由 tanglixu 于 2016-5-27 20:09 编辑

SQL Server 2008 批量删除所有数据库的日志文件
  1. use master
  2. declare @DataBaseName varchar(max)
  3. declare @DataBaseLog varchar(max)
  4. declare @Sql varchar(max)
  5. declare Cursor_GL_GetRowRecord cursor for
  6.       SELECT t2.name as DataBaseName,t1.name as DataBaseLog
  7.             FROM sys.master_files t1 left join sys.databases t2 on t1.database_id=t2.database_id
  8.             WHERE t1.type = 1 and t2.name not in ('master','tempdb','model','msdb')

  9. open Cursor_GL_GetRowRecord
  10. Fetch Next From Cursor_GL_GetRowRecord into @DataBaseName,@DataBaseLog
  11. WHILE @@FETCH_STATUS = 0
  12. BEGIN
  13.       set @DataBaseName = '[' + @DataBaseName + ']'
  14.       BEGIN TRY
  15.          set @Sql = '
  16.       USE [master]
  17.       ALTER DATABASE @DataBaseName SET RECOVERY SIMPLE WITH NO_WAIT
  18.       ALTER DATABASE @DataBaseName SET RECOVERY SIMPLE'
  19.       set @Sql = REPLACE(@Sql, '@DataBaseName', @DataBaseName)   
  20.       print @sql
  21.       exec(@sql)--//
  22.       set @Sql = '
  23.       USE @DataBaseName
  24.       DBCC SHRINKFILE (N''@DataBaseLog'',0,TRUNCATEONLY)'
  25.       set @Sql = REPLACE(@Sql, '@DataBaseName', @DataBaseName)
  26.       set @Sql = REPLACE(@Sql, '@DataBaseLog', @DataBaseLog)      
  27.       print @sql
  28.       exec(@sql)--//
  29.       set @Sql = '
  30.       USE [master]
  31.       ALTER DATABASE @DataBaseName SET RECOVERY FULL WITH NO_WAIT
  32.       ALTER DATABASE @DataBaseName SET RECOVERY FULL'
  33.       set @Sql = REPLACE(@Sql, '@DataBaseName', @DataBaseName)
  34.       print @sql
  35.       exec(@sql) --//
  36.       END TRY
  37.       BEGIN CATCH
  38.       END CATCH
  39.       Fetch Next From Cursor_GL_GetRowRecord into @DataBaseName,@DataBaseLog
  40. end
  41. Close Cursor_GL_GetRowRecord
  42. Deallocate Cursor_GL_GetRowRecord
复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|一步通软件 ( 蜀ICP备15031919号 )

快速回复 返回顶部 返回列表