Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95805
  • 博文数量: 39
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 405
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-25 09:25
文章分类

全部博文(39)

文章存档

2011年(1)

2010年(5)

2009年(4)

2008年(29)

我的朋友
最近访客

分类: 数据库开发技术

2008-11-05 10:51:38

方案一:
 
  

SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
DECLARE @name VARCHAR(25)
DECLARE @SQL VARCHAR(1000)
DECLARE @logid INT
   
DECLARE sysdatabase_name CURSOR FOR SELECT name FROM master.dbo.sysdatabases
   
OPEN sysdatabase_name
FETCH NEXT FROM sysdatabase_name INTO @name
   
WHILE @@FETCH_STATUS = 0
BEGIN
  
   IF ( @name NOT IN ('xxx')) --不需要进行日志收缩的数据库名

   BEGIN
     SET @SQL =' DECLARE @logid INT
                 USE '
+ @name+'
                 SELECT @logid = fileid FROM sysfiles WHERE RIGHT(rtrim(filename),3) = '
'ldf''
   
                 BACKUP LOG '
+ @name+' WITH NO_LOG
                 DBCC SHRINKFILE (@logid) '

   
     EXEC(@SQL)
   
   END
   
   FETCH NEXT FROM sysdatabase_name INTO @name
   
END
   
CLOSE sysdatabase_name
DEALLOCATE sysdatabase_name

方案二:

 企业管理器--点目标数据库--属性--设置为simple--收缩--设置回full

 

 

阅读(1077) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~