惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
N
Netflix TechBlog - Medium
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
V
Visual Studio Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
Hugging Face - Blog
Hugging Face - Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
博客园 - 【当耐特】
B
Blog
Stack Overflow Blog
Stack Overflow Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
GbyAI
GbyAI
博客园 - 司徒正美
博客园 - 叶小钗
Y
Y Combinator Blog
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - simplay

Virtual PC 2007 SP1 中,Windows Server 2008 SP2 下安装 SQL Server 2008 R2 word 模板 设计 + 报表 + 打印 怪:安装matlab2009a,启动时出现应用程序初始化失败 驾校无纸化考试系统-破解 自定义Linq的Distinct 无法加载 DLL“mclmcrrt711.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。 %commondir%\dte80.olb, %commondir%\dte80a.olb %CommonDir%\vslangproj2.olb 未能加载 - simplay 批处理自动更改IP地址 - simplay - 博客园 修改 Map Area Tip 样式 SQL SERVER 2005 数据库对比工具,并自动生成更新SQL脚本 清除SQL2005 表中字段说明属性 温廓线 SQL Server2005 数据库发布向导(Database Publishing Wizard) 正则解析HTML中的IMG中的图片地址 IFRAME 自适应高度 IE无法打开链接解决方法 Office 2003正版验证破解方法 告别SharePoint未知错误 - simplay - 博客园 解决XP的IIS "HTTP 500”内部服务器错误
SQL SERVER 2005 批量收缩数据库
simplay · 2009-12-17 · via 博客园 - simplay

由于在生产环境中数据库很多,又缺乏管理,导致数据库日志不断增加,且磁盘空间逐渐减少,手动收缩又太麻烦,写个脚本批量执行下:

代码

DECLARE @sql VARCHAR(max)
DECLARE @sqllog VARCHAR(max)
DECLARE @dbNAME VARCHAR(max)
DECLARE myCURSOR CURSOR FOR 
    
SELECT 'use '+ NAME +' DUMP TRANSACTION '+NAME +' WITH NO_LOG',NAME  FROM sys.databases
OPEN myCURSOR              
FETCH NEXT FROM myCURSOR  INTO @sql ,@dbNAME
WHILE(@@FETCH_status=0)  
BEGIN
    
BEGIN TRY
        
EXEC(@sql)
        
SET @sqllog='use '+@dbNAME + ' DECLARE @NAME VARCHAR(50) 
                  SELECT @NAME=NAME FROM sys.sysfiles where groupid=0 
                DBCC SHRINKFILE (@NAME, 0, TRUNCATEONLY) 
'
        
EXEC(@sqllog)
        
SET @sqllog='use '+@dbNAME + ' DECLARE @NAME VARCHAR(50) 
                  SELECT @NAME=NAME FROM sys.sysfiles where groupid=1 
                DBCC SHRINKFILE (@NAME, 0, TRUNCATEONLY) 
'
        
EXEC(@sqllog)
    
END TRY
    
BEGIN CATCH
        
PRINT 'ERROR'
    
END CATCH;
    
FETCH NEXT FROM myCURSOR INTO @sql,@dbNAME
END
CLOSE myCURSOR 
deallocate myCURSOR