博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
游标的使用之压缩数据库Log文件
阅读量:6463 次
发布时间:2019-06-23

本文共 1158 字,大约阅读时间需要 3 分钟。

declare @databasename nvarchar(100)

--定义游标以及赋值 获取所有Online的Database Name
declare getDataBaseCursor  cursor for select name from  master.sys.databases where state_desc='online'
--在使用游标之前必须打开它,打开游标
open getDataBaseCursor
--使用fetcth语句取得数据,一条FETCH语句一次可以将一条记录放入指定的变量中,达到Shrink每个DB的效果
fetch next from getDataBaseCursor into @databasename
while @@FETCH_STATUS = 0
begin
 declare @RecoveryModel nvarchar(20)
 declare @sql nvarchar(100)
 declare @logfileid int
 select @RecoveryModel= cast(DATABASEPROPERTYEX(name,'RECOVERY') as varchar(20)) from master..sysdatabases where name =@databasename
 IF @RecoveryModel<>'SIMPLE'
  begin
                EXEC ('ALTER DATABASE '+@databasename +' SET RECOVERY SIMPLE')
 end
 declare @dsql nvarchar(200)
 set @dsql=N'select @logfileid = file_id from ' + @databasename+ N'.sys.database_files where type_desc = ''LOG'''
 exec sp_executesql @dsql,N'@logfileid int output',@logfileid output
 EXEC('use '+@databasename+ ' DBCC SHRINKFILE( '+@logfileid+')')
fetch next from getDataBaseCursor into @databasename
end
--在游标操作的最后请不要忘记关闭游标,以使系统释放游标占用的资源
CLOSE getDataBaseCursor
--删除游标
DEALLOCATE getDataBaseCursor

转载于:https://www.cnblogs.com/tutuyforever/p/4797146.html

你可能感兴趣的文章
创建一个多级文件目录
查看>>
Picasa生成图片幻灯片页面图文教程
查看>>
js获取当前时间的前一天/后一天
查看>>
[洛谷P3978][TJOI2015]概率论
查看>>
Python学习——编程语言介绍
查看>>
Python字符串的格式化
查看>>
C#反射---属性
查看>>
服务器常用的状态码及其对应的含义如下
查看>>
完美字符串
查看>>
zoom和transform:scale的区别
查看>>
幸福框架:可扩展的、动态的、万能的 编号生成器
查看>>
黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞
查看>>
svn status 显示 ~xx
查看>>
常用HiveQL总结
查看>>
[转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
查看>>
POJ 3311 Hie with the Pie(状压DP + Floyd)
查看>>
HDU 1402 A * B Problem Plus FFT
查看>>
[CareerCup] 17.3 Factorial Trailing Zeros 求阶乘末尾零的个数
查看>>
Security updates and resources
查看>>
深入理解JavaScript系列(25):设计模式之单例模式
查看>>