删除SQL Server日志的方法(4)_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:解读SQL存储过程入门级教程
1.SQL存储过程概述 在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL语句和流程控制语句的集合。就本质而言,触发器也是一种存储过程。存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。SQLSe


--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 
 

分享:按指定排列顺序获取数据的sql语句
测试table create table table1 (id int,name char) insert into table1 select 1,'q' union all select 2,'r' union all select 3,'3' union all select 4,'5' 要求按指定的id顺序(比如2,1,4,3)排列获取table1的数据 方法1: 使用union all,但是有256条数据的

共4页上一页1234下一页
来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2010-04-05
相关Mssql数据库教程