当前位置:主页 >澳门威泥斯人网站有多少个

澳门威泥斯人网站有多少个:缩小SQL Server数据库日志

发布时间:01月11日 阅读:676



--缩小日志

-- exec p_compdb ’test’

create proc p_compdb

@dbname sysname, --要压缩的数据库名

@bkdatabase bit=1, --由于分离日志的步骤中,可能会毁坏数据库,以是你可以选择是否自动数据库

@bkfname nvarchar(260)=’’ --备份的文件名,假如不指定,自动备份到默认备份目录,备份文件名为:数据库名+日期光阴

as

--1.清空日志

exec(’DUMP TRANSACTION [’澳门威泥斯人网站有多少个+@dbname+’] WITHNO_LOG’)

--2.截断事务日志:

exec(’BACKUP LOG [’+@dbname+’] WITH NO_LOG’)

--3.紧缩数据库文件(假如不压缩,数据库的文件不会减小

exec(’DBCC SHRINKDATABASE([’+@dbname+’])’)

--4.设置自动紧缩

exec(’E澳门威泥斯人网站有多少个XEC sp_dboption ’’’+@dbname+’’’,’’autoshrink’’,’’TRUE’’’)

--后面的步骤有必然危险,你可以可以选择是否应该这些步骤

--5.分离数据库

if @bkdatabase=1

begin

if isnull(@bkfname,’’)=’’

set @bkfname=@dbname+’_’+convert(varchar,getdate(),112)

+replace(convert(varchar,getdate(),108),’:’,’’)

select 提示信息=’备份数据库到SQL 默认备份目录,备份文件名:’+@bkfname

exec(’backup database [’+@dbname+’] to disk=’’’+@bkfname+’’’’)

end

--进行分离处置惩罚

create table #t(fname nvarchar(260),type int)

exec(’insert into #t select filename,type=status&0x40 from [’+@dbname+’]..sysfiles’)

exec(’sp_detach_db ’’’+@dbname+’’’’)

--删除日志文件

declare @fname nvarchar(260),@s varchar(8000)

declare tb cursor local for select fname from #t where type=64

open tb

fetch next from tb into @fname

while 澳门威泥斯人网站有多少个@@fetch_status=0

begin

set @s=’del "’+rtrim(@fname)+’"’

exec master..xp_澳门威泥斯人网站有多少个cmdshell @s,no_output

fetch next from tb into @fname

end

close tb

deallocate tb

--附加数据库

set @s=’’

declare tb cursor local for select fname from #t where type=0

open tb

fetch next from tb into @fname

while @@fetch_status=0

begin

set @s=@s+’,’’’+rtrim(@fname)+’’’’

fetch next from tb into @fname

end

close tb

deallocate tb

exec(’sp_attach_single_file_db ’’澳门威泥斯人网站有多少个’+@dbname+’’’’+@s)

GO



上一篇:澳门威尼l斯人网址:嫩嫩的彩椒炒牛肉
下一篇:澳门威斯尼平台9499:唐人街探案阿温在酒吧唱的歌叫什么? 《刺激2005》情歌串烧引观众飙泪