手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
摘要:复制代码代码如下:DECLARE@nameVARCHAR(25)DECLARE@SQLVARCHAR(1000)DECLARE@logidI...

复制代码 代码如下:

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

SQL语句实现Sql Server 2005日志收缩(批量)

复制代码 代码如下:

-->Title:生成測試數據

-->Author:wufeng4552

-->Date :2009-09-15 08:56:03

declare @dbname nvarchar(20) --數據庫名稱

declare @sql nvarchar(max)

declare sysdbname cursor for select name from master.dbo.sysdatabases

open sysdbname

fetch next from sysdbname into @dbname

while @@fetch_status=0

begin

if (@dbname not in('xxx'))--不需要进行日志收缩的数据库名

begin

set @sql=--日誌文件ID

N' declare @logid int '+

N' use '+@dbname+

N' select @logid=fileid from sysfiles where right(ltrim(rtrim(filename)),3)=''ldf'''+

--截断事务日志

N' backup log '+@dbname+' with no_log '+

--收缩指定数据文件

N' dbcc shrinkfile(@logid)'

exec(@sql)

end

fetch next from sysdbname into @dbname

end

close sysdbname

deallocate sysdbname

【SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)】相关文章:

SQL server 2008 数据安全(备份和恢复数据库)

SQL Server使用一个语句块批量插入多条记录的三种方法

通过SQL Server 2008数据库复制实现数据库同步备份

详解SQL Server 2008工具SQL Server Profiler

SQL Server 登录连接失败

用SQL语句实现随机查询数据并不显示错误数据的方法

SQL Server 2005 镜像构建手册(sql2005数据库同步镜像方案)

Sqlserver2005日志文件太大如何减小

SQL Server 2008 清空删除日志文件(瞬间日志变几M)

SQL Server 2005删除日志文件的几种方法小结

精品推荐
分类导航